2010-11-22 4 views
2

Lorsque je définis le chemin de chargement sur la ligne de commande en utilisant -I, est-il toujours le cas que ce chemin est le premier élément dans le tableau $:?

Est-il possible que ce chemin ne soit pas le premier élément du tableau $:?

+0

Je ne sais pas, mais il est un assez sûr que si vous déplacez votre chemin au sommet de votre script, ce sera le premier. À moins que vous ne fassiez du code, cela changera plus tard. – Jeremy

Répondre

2

Cela dépend principalement de la version de l'interpréteur/machine virtuelle Ruby que vous utilisez, mais, en général, c'est le but de l'option -I: vous devriez pouvoir remplacer le $LOAD_PATH par défaut.

Si vous souhaitez fournir $LOAD_PATH composants à l'aide de ligne de commande qui serait appliquée dans d'autres positions, vous êtes libre de mettre en œuvre vos propres options de ligne de commande, tels que

require 'getoptlong' 

opts = GetoptLong.new(['--include', '-I', GetoptLong::REQUIRED_ARGUMENT ]) 

opts.each { |opt, arg| 
    $LOAD_PATH << arg if opt == '--include' 
} 
+0

avez-vous des informations sur la façon dont cette déclaration est portable? – asdas

+0

Cela dépend de la façon dont vous définissez "portable". Les deux utilisant '-I' dans la ligne de commande de l'interpréteur/machine virtuelle Ruby et utilisant une autre option de ligne de commande de l'application elle-même (comme dans cet exemple) est portable sur les systèmes d'exploitation et diverses versions de Ruby. Le comportement de '$ LOAD_PATH' est bien défini. Cependant, je soupçonne que certaines versions (ou plates-formes) peuvent manquer de ligne de commande (par exemple, je ne suis pas sûr que vous pouvez démarrer un programme avec des arguments de ligne de commande sur la plate-forme Android ou sur le port S60). – GreyCat

Questions connexes