Se você conhece essa maneira de executar scripts Ruby, continue lendo:
cd project-dir # with Gemfile
rvm ree
bundle exec bin/some-ruby-script
Seria bom colocar esse project-dir / bin em $ PATH e apenas executar algum-ruby-script sem encontrar um Gemfile, trocando rubis com rvm e digitando bundle exec:
some-ruby-script
Para se livrar do rvm, crie um invólucro de ruby que termine no shebang do script:
rvm wrapper ree destructuring ruby gem irb bundle
Isso cria destructuring_ruby em rvm / bin, mas pode ser movido, renomeado para qualquer coisa. Shebangs agora se parece com:
#!/usr/local/rvm/bin/destructuring_ruby
Para se livrar do bundle exec, basta usar rubygems e bundler em seu script:
require 'rubygems'
require 'bundler/setup'
Para se livrar da localização do Gemfile, defina BUNDLE_GEMFILE. Encontrar o Gemfile de um projeto deve funcionar em implementações de produção, áreas de trabalho de desenvolvimento e até mesmo quando o bin / dir está conectado simbolicamente.
Isso é desagradável, mas funciona. Sempre procurando uma maneira de melhorá-lo:
ENV['BUNDLE_GEMFILE'] = File.join(File.expand_path('../..', File.realpath(__FILE__)), 'Gemfile')
Portanto, o esqueleto do script é semelhante a:
#!/usr/local/rvm/bin/destructuring_ruby
require 'rubygems'
ENV['BUNDLE_GEMFILE'] = File.join(File.expand_path('../..', File.realpath(__FILE__)), 'Gemfile')
require 'bundler/setup'