diff --git a/share/chruby/chruby.sh b/share/chruby/chruby.sh index be4a561e..dd1a46da 100644 --- a/share/chruby/chruby.sh +++ b/share/chruby/chruby.sh @@ -11,6 +11,7 @@ function chruby_reset() [[ -z "$RUBY_ROOT" ]] && return PATH=":$PATH:"; PATH="${PATH//:$RUBY_ROOT\/bin:/:}" + [[ -n "$RUBY_PREPEND" ]] && PATH="${PATH//:$RUBY_PREPEND:/:}" [[ -n "$GEM_ROOT" ]] && PATH="${PATH//:$GEM_ROOT\/bin:/:}" if (( UID != 0 )); then @@ -30,6 +31,15 @@ function chruby_reset() hash -r } +function chruby_prepend() +{ + if [[ -n "$RUBY_PREPEND" ]]; then + PATH=":$PATH:"; PATH="${PATH//:$RUBY_PREPEND:/:}" + fi + export RUBY_PREPEND="$1" + [[ -n "$RUBY_ROOT" ]] && chruby_use "$RUBY_ROOT" "$RUBYOPT" +} + function chruby_use() { if [[ ! -x "$1/bin/ruby" ]]; then @@ -56,6 +66,10 @@ EOF export GEM_PATH="$GEM_HOME${GEM_ROOT:+:$GEM_ROOT}${GEM_PATH:+:$GEM_PATH}" export PATH="$GEM_HOME/bin:$PATH" fi + + if [[ -n "$RUBY_PREPEND" ]]; then + export PATH="$RUBY_PREPEND:$PATH" + fi hash -r }