summaryrefslogtreecommitdiff
path: root/plugins/bundler/bundler.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/bundler/bundler.plugin.zsh')
-rw-r--r--plugins/bundler/bundler.plugin.zsh38
1 files changed, 30 insertions, 8 deletions
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index 3c96b8da9..e4b03e7b0 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -1,26 +1,46 @@
-fpath=($ZSH/plugins/bundler $fpath)
-autoload -U compinit
-compinit -i
-
alias be="bundle exec"
-alias bi="bundle install"
alias bl="bundle list"
alias bp="bundle package"
+alias bo="bundle open"
alias bu="bundle update"
# The following is based on https://github.com/gma/bundler-exec
-bundled_commands=(cap capify cucumber foreman guard heroku nanoc rackup rails rainbows rake rspec ruby shotgun spec spork thin unicorn unicorn_rails)
+bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard irb jekyll kitchen knife mailcatcher middleman nanoc puma rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails)
+
+# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
+for cmd in $UNBUNDLED_COMMANDS; do
+ bundled_commands=(${bundled_commands#$cmd});
+done
## Functions
+bi() {
+ if _bundler-installed && _within-bundled-project; then
+ local bundler_version=`bundle version | cut -d' ' -f3`
+ if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
+ if [[ "$(uname)" == 'Darwin' ]]
+ then
+ local cores_num="$(sysctl hw.ncpu | awk '{print $2}')"
+ else
+ local cores_num="$(nproc)"
+ fi
+ bundle install --jobs=$cores_num $@
+ else
+ bundle install $@
+ fi
+ else
+ echo "Can't 'bundle install' outside a bundled project"
+ fi
+}
+
_bundler-installed() {
which bundle > /dev/null 2>&1
}
_within-bundled-project() {
local check_dir=$PWD
- while [ "$(dirname $check_dir)" != "/" ]; do
+ while [ $check_dir != "/" ]; do
[ -f "$check_dir/Gemfile" ] && return
check_dir="$(dirname $check_dir)"
done
@@ -37,10 +57,12 @@ _run-with-bundler() {
## Main program
for cmd in $bundled_commands; do
+ eval "function unbundled_$cmd () { $cmd \$@ }"
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
alias $cmd=bundled_$cmd
if which _$cmd > /dev/null 2>&1; then
- compdef _$cmd bundled_$cmd
+ compdef _$cmd bundled_$cmd=$cmd
fi
done
+