J'utilise IRB (interactive ruby console) pour apprendre à programmer avec Ruby. Comment charger un fichier dans la console si j'écris d'abord mes programmes dans un éditeur de texte ?
Réponses
Trop de publicités?En utilisant ruby 1.9.3 sur Ubuntu 14.04, je suis capable de charger des fichiers du répertoire courant dans irb
avec la ligne de commande suivante :
irb -I . -r foo.rb
donde foo.rb
est le fichier que je veux charger à partir de mon répertoire actuel. Le site -I
est nécessaire pour ajouter le répertoire courant ( .
) au chemin de chargement de ruby, comme expliqué dans la page de manuel de ruby. Cela permet de require
du répertoire courant, ce qui est le cas de la fonction -r
option pour irb
accomplit.
L'élément clé qui n'était pas évident pour moi lorsque j'ai eu ce problème est le -I
option. Une fois que vous avez fait cela, vous pouvez appeler require 'foo.rb'
de l'intérieur irb
pour tous les fichiers du répertoire courant. Et bien sûr, vous pouvez spécifier n'importe quel répertoire que vous voulez, pas seulement .
avec le -I
option. Pour inclure plusieurs répertoires dans le chemin de chargement, séparez-les par un deux-points ( :), par exemple :
irb -I foo/:bar/:baz/
Cette commande ajoutera les répertoires foo
, bar
et baz
au chemin de chargement de ruby.
La dernière alternative est d'utiliser le chemin d'accès relatif ou absolu au fichier lors de l'utilisation de la fonction require
o -r
pour charger un fichier :
irb -r ./foo.rb
ou de l'intérieur irb
:
> require './foo.rb'
Cela dépend de votre ruby. Ruby 1.8 inclut votre chemin actuel, alors que ruby 1.9 ne le fait pas. Évaluez $:
pour déterminer si votre chemin est inclus ou non. Donc dans ruby 1.9 vous devez utiliser le chemin entier, ce qui est toujours un pari sûr.
Vous pouvez alors utiliser require
o 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 seule fois. require
doit être utilisé à la place de load
la plupart du temps.
Vérifiez Ajout d'un répertoire à $LOAD_PATH (Ruby) si vous allez utiliser ruby 1.8
- Réponses précédentes
- Plus de réponses