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