web-dev-qa-db-fra.com

Comment exécuter un script Ruby dans un contexte de bundle?

J'ai un script Ruby appelé foo.rb, et je veux l'exécuter dans le contexte de l'environnement de bundle. Comment?

bundle exec foo.rb ne fonctionne pas, car exec attend un script Shell.

47
Michiel de Mare

Passez le nom du script à la commande Ruby:

bundle exec Ruby script_name

Si vous souhaitez également l'environnement Rails:

bundle exec Rails runner script_name
79
Dave Newton

Par exemple, je voulais utiliser la même version de Rubocop que mon application Rails et non la version la plus récente du système. Pour ce faire, utilisez un script:

require 'bundler'
Bundler.require

# ...

M'a permis d'utiliser la version de rubocop de mon application.

2
Dorian

Vous pouvez simplement en faire un script - ajouter

#!/usr/bin/env Ruby

au début du fichier et le rendre exécutable. Alors bundle exec foo.rb fonctionnera comme prévu.

(Ceci est sous Unix ou OSX - pas sûr de Windows)

Voir http://bundler.io/v1.15/man/bundle-exec.1.html#Loading

Voir également https://coderwall.com/p/kfyzcw/execute-Ruby-scripts-directly-without-bundler-exec pour savoir comment exécuter des scripts Ruby avec des dépendances intégrées, sans avoir besoin de bundle exec

0
Korny