Usando gs para conjuntos de joias rbenv enxutos

Recentemente, usei https://github.com/soveran/gs como alternativa ao rbenv-gemset. Ele funciona muito bem para criar isolamento de gemas para projetos legados e também funciona muito bem com o Bundler. Com o ajuste abaixo, ele também torna a execução bundle execobsoleta.

Há uma advertência para a instalação padrão: o caminho gs bin vem após rbenv shims e binários do sistema. Este é um exemplo de caminho:

/usr/local/var/rbenv/shims:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Erol/Projects/ohm-sequel/.gs/bin:/usr/local/var/rbenv/versions/1.9.3-p448/bin:/usr/local/Cellar/rbenv/0.4.0/libexec:/usr/local/var/rbenv/shims:/Users/Erol/.yadr/bin:/Users/Erol/.yadr/bin/yadr:/Users/Erol/.yadr/bin:/Users/Erol/.yadr/bin/yadr

Resolvi isso adicionando o seguinte snippet a .zshrc (você pode adicioná-lo a .bashrc se estiver usando o bash):

if [ -n "$GS_NAME" ]; then
GS_BINPATH
=$PWD/.gs/bin
PATH
=$GS_BINPATH:${PATH/${GS_BINPATH}:/}
fi

Agora vamos experimentar:

Erol@Emiya ~/Projects/ohm-sequel (master)$ gs
Erol@Emiya ~/Projects/ohm-sequel (master)$ echo $PATH
/Users/Erol/Projects/ohm-sequel/.gs/bin:/usr/local/var/rbenv/shims:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/var/rbenv/versions/1.9.3-p448/bin:/usr/local/Cellar/rbenv/0.4.0/libexec:/usr/local/var/rbenv/shims:/Applications/Postgres.app/Contents/MacOS/bin:/Users/Erol/.yadr/bin:/Users/Erol/.yadr/bin/yadr:/Users/Erol/.yadr/bin:/Users/Erol/.yadr/bin/yadr
Erol@Emiya ~/Projects/ohm-sequel (master)$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.23
- RUBY VERSION: 1.9.3 (2013-06-27 patchlevel 448) [x86_64-darwin12.4.0]
- INSTALLATION DIRECTORY: /Users/Erol/Projects/ohm-sequel/.gs
- RUBY EXECUTABLE: /usr/local/var/rbenv/versions/1.9.3-p448/bin/ruby
- EXECUTABLE DIRECTORY: /Users/Erol/Projects/ohm-sequel/.gs/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/Erol/Projects/ohm-sequel/.gs
- /usr/local/var/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1
- /Users/Erol/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"]
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://gems.rubyforge.org/
- http://gems.github.com