web-dev-qa-db-fra.com

Ruby: Comment charger un fichier dans la console interactive Ruby (IRB)?

J'utilise IRB (console interactive Ruby) pour apprendre à programmer avec Ruby. Comment charger un fichier dans la console si j'écris d'abord mes programmes dans un éditeur de texte?

73
nbonbon

Si vous ne devez charger qu'un seul fichier dans IRB, vous pouvez l'invoquer avec irb -r ./your_file.rb s'il se trouve dans le même répertoire.

Cela nécessite automatiquement le fichier et vous permet de le manipuler immédiatement.

72
PhilG

En utilisant Ruby 1.9.3 sur Ubuntu 14.04, je peux charger des fichiers du répertoire actuel dans irb avec la ligne de commande suivante:

irb -I . -r foo.rb

foo.rb est le fichier que je veux charger à partir de mon répertoire actuel. L'option -I est nécessaire pour ajouter le répertoire en cours (.) au chemin de chargement de Ruby, comme expliqué dans la page de manuel Ruby. Cela permet de require fichiers du répertoire en cours, ce que l’option -r de irb accomplit.

L’élément clé qui n’était pas évident pour moi lorsque j’ai eu ce problème est l’option -I. Une fois que vous avez fait cela, vous pouvez appeler require 'foo.rb' à partir de irb pour n’importe quel fichier du répertoire en cours. Et bien sûr, vous pouvez spécifier le répertoire de votre choix, pas seulement . avec l'option -I. Pour inclure plusieurs répertoires sur le chemin de chargement, séparez-les par deux points (:), par exemple:

irb -I foo/:bar/:baz/

Cette commande va ajouter les répertoires foo, bar et baz au chemin de chargement de Ruby.

La dernière option consiste à utiliser le chemin relatif ou absolu du fichier lorsque vous utilisez require ou -r pour charger un fichier:

irb -r ./foo.rb

ou à partir de irb:

> require './foo.rb'
37
wachr

Tapez irb

Et alors 

require './Ruby_file.rb'

Cela suppose que Ruby_file.rb se trouve dans le même répertoire. Ajuste en accord.

28
okysabeni

Cela dépend de votre Ruby. Ruby 1.8 inclut votre chemin actuel, contrairement à Ruby 1.9. Evaluez $: pour déterminer si votre chemin est inclus ou non. Donc, dans Ruby 1.9, vous devez utiliser tout le chemin, ce qui est toujours une valeur sûre.

Ensuite, vous pouvez utiliser require ou load pour inclure le fichier.

require ne vous oblige pas à ajouter le suffixe du fichier lorsque vous essayez de le trouver et n'inclura le fichier qu'une fois. require doit être utilisé à la place de load la plupart du temps.

Check out Ajout d’un répertoire à $ LOAD_PATH (Ruby) si vous allez utiliser Ruby 1.8

3
Michael

Tapez les codes Ruby dans l'éditeur de texte 

Enregistrez-le avec l'extension .rb (par exemple: demo.rb).

Sous Linux, ouvrez votre terminal, puis changez de répertoire en l'emplacement actuel de ce fichier (la commande cd permet de changer de répertoire).

Après cela, tapez irb et votre nom de fichier (n'oubliez pas d'inclure votre extension (.rb)).

 click here to see loading a Ruby file using irb

Dans cette image, j'ai chargé un simple fichier Ruby qui n'imprime que "Ruby".

2
vinoth

Pour ceux qui veulent charger le fichier .rb à partir d’un répertoire différent. Ajoutez simplement une chaîne représentant le répertoire à la variable $: variable.

> $: << "/directory/to/the/required/rb/file"
> require "some_file"
0
tagaism

Un autre moyen de charger le chemin dans irb consiste simplement à taper, puis glisser le fichier dans le terminal. 

0
Mike Kennedy