summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBodo Tasche <bodo@wannawork.de>2011-06-12 13:13:39 +0200
committerHakan Ensari <hakan.ensari@papercavalier.com>2011-07-13 22:54:30 +0100
commit9e8194355c1a4f69dc52fbe2699fbce1be5c6493 (patch)
tree0cd78f9b873ac143e41c18bfbd04052ccd7365b0
parent3552423de3d5ae439dc815b7f9c4cbeab3fbebe8 (diff)
downloadzsh-9e8194355c1a4f69dc52fbe2699fbce1be5c6493.tar.gz
zsh-9e8194355c1a4f69dc52fbe2699fbce1be5c6493.tar.bz2
zsh-9e8194355c1a4f69dc52fbe2699fbce1be5c6493.zip
Added bundler-exec plugin
-rw-r--r--plugins/bundler-exec/bundler-exec.plugin.zsh37
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