Ho uno script Ruby chiamato foo.rb e voglio eseguirlo nel contesto dell'ambiente di bundler. Come?Come eseguire uno script ruby nel contesto di bundler?
bundle exec foo.rb
non funziona, perché exec si aspetta uno script di shell.
Ho uno script Ruby chiamato foo.rb e voglio eseguirlo nel contesto dell'ambiente di bundler. Come?Come eseguire uno script ruby nel contesto di bundler?
bundle exec foo.rb
non funziona, perché exec si aspetta uno script di shell.
passare il nome script per il comando ruby
:
bundle exec ruby script_name
Se si desidera anche l'ambiente Rails:
bundle exec rails runner script_name
Per esempio, ho voluto usare la stessa versione di Rubocop come i miei Rails app e non l'ultimo sistema, quindi in uno script:
require 'bundler'
Bundler.require
# ...
Mi ha permesso di usare la versione della mia app di rubocop.
Si può solo renderlo uno script - aggiungere
#!/usr/bin/env ruby
per l'inizio del file, e renderlo eseguibile. Quindi bundle exec foo.rb
funzionerà come previsto.
(Questo è su UNIX o OSX - non è sicuro su Windows)
Vedi http://bundler.io/v1.15/man/bundle-exec.1.html#Loading
anche vedere https://coderwall.com/p/kfyzcw/execute-ruby-scripts-directly-without-bundler-exec per come eseguire gli script rubino con dipendenze bundle, senza bisogno bundle exec
Wow, che è stato abbastanza ovvio in retrospettiva. –
@MichieldeMare È come se tutto fosse nell'ultimo posto in cui si guarda - perché smetti di guardare;) –