Refactor rbenv shell setup slightly

This commit is contained in:
2020-08-04 15:37:48 +01:00
parent 2ac4e2898a
commit 74611be5f6
2 changed files with 57 additions and 53 deletions

55
zsh/rbenv.zsh Normal file
View File

@@ -0,0 +1,55 @@
#
# rbenv (Ruby version manager) setup.
#
# ==============================================================================
# Lazy-load rbenv
# ==============================================================================
rbenv() {
load-rbenv
rbenv "$@"
}
_rbenv() {
load-rbenv
_rbenv "$@"
}
compctl -K _rbenv rbenv
load-rbenv() {
unset -f load-rbenv _rbenv rbenv
eval "$(command rbenv init -)"
}
# ==============================================================================
# Plugins
# ==============================================================================
zinit ice as'program' pick'bin/rbenv-each' from'gh'
zinit light rbenv/rbenv-each
# ==============================================================================
# Misc.
# ==============================================================================
solargraph-install() {
rbenv each -v gem install solargraph
}
solargraph-download-cores() {
rbenv each -v solargraph download-core
}
solargraph-list-versions() {
rbenv each -v gem list -q solargraph
}
rubygems-upgrade() {
rbenv each -v gem update --system
}
upgrade-bundler() {
rbenv each -v gem install --no-document 'bundler:~> 1.0' 'bundler:~> 2.0'
}

View File

@@ -13,7 +13,6 @@ install_ruby_global_packages() {
method_source
procodile
pry-doc
rbenv-rehash
reek
rubocop
rubocop-daemon
@@ -21,6 +20,7 @@ install_ruby_global_packages() {
solargraph
)
gem install --no-document rbenv-rehash
gem install --no-document "${packages[@]}"
}
@@ -53,56 +53,5 @@ alias bp="bundle package"
alias bu="bundle update"
if command-exists rbenv; then
# lazy-load rbenv
rbenv() {
load-rbenv
rbenv "$@"
}
_rbenv() {
load-rbenv
_rbenv "$@"
}
compctl -K _rbenv rbenv
load-rbenv() {
unset -f load-rbenv _rbenv rbenv
eval "$(command rbenv init -)"
}
source "$DOTZSH/rbenv.zsh"
fi
rbenv-each-version() {
local current_version="$RBENV_VERSION"
for v in $(ls "${HOME}/.rbenv/versions"); do
echo "==> Ruby $v:"
export RBENV_VERSION="$v"
eval $*
done
export RBENV_VERSION="$current_version"
}
# Solargraph related commands
solargraph-install() {
rbenv-each-version "gem install solargraph"
}
solargraph-download-cores() {
rbenv-each-version "solargraph download-core"
}
solargraph-list-versions() {
rbenv-each-version "gem list -q solargraph"
}
rubygems-upgrade() {
rbenv-each-version "gem update --system"
}
upgrade-bundler() {
rbenv-each-version \
"gem install --no-document 'bundler:~> 1.0' 'bundler:~> 2.0'"
}