107 votes

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

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 ?

102voto

PhilG Points 1183

Si vous n'avez besoin de 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 requiert automatiquement le fichier et vous permet de travailler avec lui immédiatement.

57voto

wachr Points 897

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'

37voto

Yko Points 1751

Tapez dans irb

Et puis

require './ruby_file.rb'

Ceci suppose que ruby_file.rb est dans le même répertoire. Ajustez en conséquence.

33voto

Assad Ebrahim Points 1295

De deux façons :

  1. pour charger la source sans exécuter le programme -- cela donne accès à toutes les variables et fonctions :

source("filename.rb")

  1. pour exécuter le programme et ensuite passer en mode interactif -- cela ne donne accès qu'aux fonctions, pas aux variables :

require("filename.rb")

4voto

Michael Points 2985

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X