web-dev-qa-db-ja.com

バンドルコンテキスト内でRubyスクリプトを実行する方法は?

Ruby foo.rbというスクリプトがあり、それをバンドル環境のコンテキスト内で実行したいのですが、どうすればよいですか?

bundle exec foo.rbは、execがシェルスクリプトを想定しているため機能しません。

55
Michiel de Mare

スクリプト名をRubyコマンドに渡します。

bundle exec Ruby script_name

Rails環境も必要な場合:

bundle exec Rails runner script_name
86
Dave Newton

たとえば、私は最新のシステムではなく、Railsアプリと同じバージョンのRubocopを使用したかったので、これをスクリプトで実行します。

require 'bundler'
Bundler.require

# ...

アプリのバージョンのrubocopを使用できるようになりました。

3
Dorian

あなたはそれをスクリプトにすることができます-追加

#!/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は不要

0
Korny