diff options
Diffstat (limited to 'plugins/bundler-exec')
| -rw-r--r-- | plugins/bundler-exec/bundler-exec.plugin.zsh | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh new file mode 100644 index 000000000..966725976 --- /dev/null +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -0,0 +1,37 @@ +# This plugin is based on https://github.com/gma/bundler-exec +# modify the BUNDLED_COMMANDS if needed + +BUNDLED_COMMANDS=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) + +## Functions + +bundler-installed() +{ +    which bundle > /dev/null 2>&1 +} + +within-bundled-project() +{ +    local dir="$(pwd)" +    while [ "$(dirname $dir)" != "/" ]; do +        [ -f "$dir/Gemfile" ] && return +        dir="$(dirname $dir)" +    done +    false +} + +run-with-bundler() +{ +    local command="$1" +    shift +    if bundler-installed && within-bundled-project; then +        bundle exec $command "$@" +    else +        $command "$@" +    fi +} + +## Main program +for CMD in $BUNDLED_COMMANDS; do +   alias $CMD="run-with-bundler $CMD" +done | 
