Comment exécuter un fichier .rb depuis IRB?

88

Je commence avec Ruby on Rails. Je suis actuellement en train de suivre un tutoriel où il est dit que je dois exécuter un fichier .rb de l'IRB et que cela créera un fichier .xml dans mon répertoire actuel.

Ma question est de savoir comment exécuter un fichier .rb dans IRB?
Et dois-je être dans le répertoire où se trouve ce fichier .rb lorsque je l'exécute dans IRB?

J'ai essayé ce qui suit: il suffit de taper irbsur la ligne de commande dans le répertoire du fichier. Cela démarre une session IRB pour autant que je sache.
Ensuite, j'ai tapé irb "filename.rb"ce qui est passé mais je n'ai rien créé dans le répertoire actuel mais au moins cela n'a donné aucune erreur.

J'ai aussi essayé tout un tas d'autres trucs qui m'ont donné des erreurs. Donc, je ne pense pas que je peux résoudre cela moi-même et googler l'affaire n'a pas du tout aidé.

Je dirige Leopard.

Katrina
la source

Réponses:

175

Vous pouvez «exécuter» un fichier dans irb simplement en l'exigeant ou en le chargeant.

$ irb
>> load './filename.rb'

Pour modifier votre répertoire de travail actuel dans irb, vous pouvez utiliser FileUtils :

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory
J -_- L
la source
3
pour l'exiger d'irb, vous devez fournir le chemin complet, donc: require '~/myrubystuff/coolstuff.rb' au lieu de juste require 'coolstuff'
runlevel0
J'ai pu exiger fileutilspar nom seul, aucun chemin de répertoire nécessaire. Je suis sûr que cela dépend de l'environnement et que tout le monde n'aura pas besoin d'utiliser le chemin qualifié.
volx757
5

Si vous souhaitez que votre fichier soit chargé dans la session irb et que vous utilisez Ruby 2+, vous pouvez charger un fichier dans irb comme ceci:

irb -r ./the_name_of_your_file.rb

Cela ouvre une session irb avec le fichier donné chargé.

Imaginez que vous avez un fichier avec une classe comme celle-ci:

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

Vous pourrez utiliser la classe Example dans la session irb .

Gabriel Lidenor
la source
c'est ce que je cherchais réellement, merci beaucoup!
thomas
Cela donne accès uniquement aux fonctions, pas aux variables définies dans le fichier.
Radon Rosborough
1

Nous pouvons simplement créer un fichier .rb dans le répertoire dans lequel vous travaillez actuellement en utilisant n'importe quel éditeur de texte et taper tout le code dans celui-ci, puis utiliser la commande ruby filename.rbdans le terminal, pas dans l'irb, puis il affiche la sortie dans irb.

Sreenivas
la source
4
Mais en chargeant le fichier, vous pouvez accéder aux variables qui y sont définies. Pratique lors du dépannage ou de la lecture avec une bibliothèque.
Sonia Hamilton
@Sreenivas C'était exactement ce que je cherchais. Merci!
Joshua Pinter