diff --git a/share/chruby/chruby.sh b/share/chruby/chruby.sh index be4a561e..353fddb9 100644 --- a/share/chruby/chruby.sh +++ b/share/chruby/chruby.sh @@ -1,10 +1,23 @@ CHRUBY_VERSION="0.3.9" RUBIES=() -for dir in "$PREFIX/opt/rubies" "$HOME/.rubies"; do - [[ -d "$dir" && -n "$(ls -A "$dir")" ]] && RUBIES+=("$dir"/*) -done -unset dir +function chruby_rubies() +{ + if [ -n "$ZSH_VERSION" ]; then + setopt local_options nodotglob nullglob + else + trap "$(shopt -p dotglob nullglob)" RETURN + shopt -u dotglob + shopt -s nullglob + fi + + local dir + for dir in "$@"; do + [[ -d "$dir" ]] && RUBIES+=("$dir"/*) + done +} +chruby_rubies "$PREFIX/opt/rubies" "$HOME/.rubies" +unset -f chruby_rubies function chruby_reset() {