From b6bc30edc2d33277461eb6021585e382bea77178 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Thu, 29 Sep 2011 12:40:33 +0800 Subject: [PATCH] change: make it work even without rbenv active --- plugins/rbenv/rbenv.plugin.zsh | 46 ++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index af2c3706a..4fff7e919 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -1,24 +1,28 @@ -alias rubies='rbenv versions' -alias gemsets='rbenv gemset list' +if [ -x rbenv ] ; then + alias rubies='rbenv versions' + alias gemsets='rbenv gemset list' -# TODO: Make this usable w/o rbenv. -function gems { - local current_ruby=`rbenv active | cut -f1 -d ' '` - local current_gemset=`rbenv gemset active | grep -v 'no active gemsets'` + current_ruby=$(rbenv active | cut -f1 -d ' ') + current_gemset=$(rbenv gemset active 2&>/dev/null | grep -v 'no active gemsets') - gem list $@ | sed \ - -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \ - -Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \ - -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ - -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" -} + function gems { + local rbenv_path=$(rbenv prefix) + gem list $@ | sed \ + -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \ + -Ee "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \ + -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ + -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" + } -function rbenv_prompt_info() { - ruby_version=$(rbenv version | cut -f1 -d ' ') || return - gemset=$(rbenv gemset active 2&>/dev/null | grep -v 'no active gemsets') - if [[ -n $gemset ]] ; then - echo "${ruby_version}@${gemset}" - else - echo "${ruby_version}" - fi -} + function rbenv_prompt_info() { + if [[ -n $gemset ]] ; then + echo "${ruby_version}@${gemset}" + else + echo "${ruby_version}" + fi + } +else + alias rubies='ruby -v' + function gemsets() { echo 'not supported' } + function rbenv_prompt_info() { echo '' } +fi