Ruby foo.rbというスクリプトがあり、それをバンドル環境のコンテキスト内で実行したいのですが、どうすればよいですか?
bundle exec foo.rb
は、execがシェルスクリプトを想定しているため機能しません。
スクリプト名をRuby
コマンドに渡します。
bundle exec Ruby script_name
Rails環境も必要な場合:
bundle exec Rails runner script_name
たとえば、私は最新のシステムではなく、Railsアプリと同じバージョンのRubocopを使用したかったので、これをスクリプトで実行します。
require 'bundler'
Bundler.require
# ...
アプリのバージョンのrubocopを使用できるようになりました。
あなたはそれをスクリプトにすることができます-追加
#!/usr/bin/env Ruby
ファイルの先頭に追加し、実行可能にします。その後、bundle exec foo.rb
は期待どおりに動作します。
(これはUNIXまたはOSX上にあります-Windowsについては不明です)
を参照してくださいhttp://bundler.io/v1.15/man/bundle-exec.1.html#Loading
実行方法については https://coderwall.com/p/kfyzcw/execute-Ruby-scripts-directly-without-bundler-exec も参照してください= Ruby依存関係がバンドルされたスクリプト、bundle exec
は不要