Base rbenv plugin on the rbenv in the path.

Rather than do our own searching, this gives the user full control of
the PATH variable and of the search order for rbenv.  It's also probably
faster, since we let zsh do the searching for us.
This commit is contained in:
Peter Jaros 2012-05-17 15:07:50 -04:00
commit 34bebc1ec5

View file

@ -1,43 +1,36 @@
FOUND_RBENV=0 if [[ $+commands[rbenv] -eq 1 ]] ; then
for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do
if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
FOUND_RBENV=1
export RBENV_ROOT=$rbenvdir
export PATH=${rbenvdir}/bin:$PATH
eval "$(rbenv init -)"
alias rubies="rbenv versions" eval "$(rbenv init -)"
alias gemsets="rbenv gemset list"
function current_ruby() { alias rubies="rbenv versions"
echo "$(rbenv version-name)" alias gemsets="rbenv gemset list"
}
function current_gemset() { function current_ruby() {
echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)" echo "$(rbenv version-name)"
} }
function gems { function current_gemset() {
local rbenv_path=$(rbenv prefix) echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)"
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() { function gems {
if [[ -n $(current_gemset) ]] ; then local rbenv_path=$(rbenv prefix)
echo "$(current_ruby)@$(current_gemset)" gem list $@ | sed \
else -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \
echo "$(current_ruby)" -Ee "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \
fi -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
} -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
fi }
done
unset rbenvdir
if [ $FOUND_RBENV -eq 0 ] ; then function rbenv_prompt_info() {
if [[ -n $(current_gemset) ]] ; then
echo "$(current_ruby)@$(current_gemset)"
else
echo "$(current_ruby)"
fi
}
else
alias rubies='ruby -v' alias rubies='ruby -v'
function gemsets() { echo 'not supported' } function gemsets() { echo 'not supported' }
function rbenv_prompt_info() { echo "system: $(ruby -v | cut -f-2 -d ' ')" } function rbenv_prompt_info() { echo "system: $(ruby -v | cut -f-2 -d ' ')" }