浏览代码

Merge pull request #462 from papercavalier/bundler

Bundler plugin consolidation
Robby Russell 13 年之前
父节点
当前提交
9e601c23f1
共有 2 个文件被更改,包括 35 次插入11 次删除
  1. 35 0
      plugins/bundler/bundler.plugin.zsh
  2. 0 11
      plugins/rails3/rails3.plugin.zsh

+ 35 - 0
plugins/bundler/bundler.plugin.zsh

@@ -1,3 +1,38 @@
 alias be="bundle exec"
 alias be="bundle exec"
 alias bi="bundle install"
 alias bi="bundle install"
+alias bl="bundle list"
 alias bu="bundle update"
 alias bu="bundle update"
+
+# The following is based on https://github.com/gma/bundler-exec
+
+bundled_commands=(cap capify cucumber heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails)
+
+## Functions
+
+_bundler-installed() {
+  which bundle > /dev/null 2>&1
+}
+
+_within-bundled-project() {
+  local check_dir=$PWD
+  while [ "$(dirname $check_dir)" != "/" ]; do
+    [ -f "$check_dir/Gemfile" ] && return
+    check_dir="$(dirname $check_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

+ 0 - 11
plugins/rails3/rails3.plugin.zsh

@@ -1,13 +1,5 @@
 # Rails 3 aliases, backwards-compatible with Rails 2.
 # Rails 3 aliases, backwards-compatible with Rails 2.
 
 
-function _bundle_command {
-  if command -v bundle && [ -e "Gemfile" ]; then
-    bundle exec $@
-  else
-    $@
-  fi
-}
-
 function _rails_command () {
 function _rails_command () {
   if [ -e "script/server" ]; then
   if [ -e "script/server" ]; then
     ruby script/$@
     ruby script/$@
@@ -25,6 +17,3 @@ alias rp='_rails_command plugin'
 alias rs='_rails_command server'
 alias rs='_rails_command server'
 alias rsd='_rails_command server --debugger'
 alias rsd='_rails_command server --debugger'
 alias devlog='tail -f log/development.log'
 alias devlog='tail -f log/development.log'
-
-alias rspec='_bundle_command rspec'
-alias cuke='_bundle_command cucumber'