12
votes

Comment passer à IRB si je ne spécifie pas ?

Depuis:

special A B C
<input goes here>


5 commentaires

C'est une série de code et d'exemples gravement formatés. Essayez d'essayer de rééditer et de formater à l'aide des exemples fournis dans Aide d'édition . Normalement, j'aiderais à la nettoyer pour vous, mais il y a trop, et je ne connais pas votre intention.


Pourquoi voulez-vous passer des arguments si vous pouviez les mettre en IRB? Les arguments sont-ils utilisés par le spécialBibrary?


Je veux alias "spécial == irb -rspeciallibrary" afin que je puisse faire quelque chose comme "spécial a b c" comme illustré ci-dessus.


J'ai nettoyé l'exemple de code à l'aide de l'aide d'édition ... Merci pour le pointeur.


Pensez-y comme essayant de paramétrer une coque interactive construite à partir d'IRB avec une fonctionnalité supplémentaire fournie par un module requis (à l'aide de -R )


3 Réponses :


-1
votes

solution assez étrange consiste à créer un fichier avec variables xxx

et xxx


2 commentaires

Cela ne permet pas facilement de passer des paramètres dans un clone shell basé sur une irb interactif.


Je pense que vous avez mal compris la question. Il s'agit de remplir la constante ARGV peuplée avec des paramètres passés sur la ligne de commande.



9
votes

En regardant la source du IRB exécutable: xxx

la source du module IRB: xxx

bas à parse_opts , notre méthode de problème: xxx

Il est codé en dur de prendre cette option comme nom de script (@conf [: Script] = Opt). Heureusement, c'est rubis. La première idée que j'avais utilisée utilisait un script différent pour lancer IRB qui modifie d'abord le module.

~ / bin / personnalisé-irb: xxx vous peut lancer cela avec personnalisé-irb foo bar baz et argv sera ['foo', "bar", "baz"] .


3 commentaires

+1 laid, mais obtient le travail. C'est la Susan Boyle de scripts.


Nice Hack @scragz. Il peut donner un sens à autoriser irb - a b c comme moyen de contourner la condition de fichier, mais votre réponse couvre bien la question.


Oui, permettant à IRB - A B C adresserait à la préoccupation des affiches originales et élimine le code dupliqué. Quiconque se soucie d'interroger le mainteneur IRB actuel pour un patch rapide?



-1
votes

Vous pouvez créer un fichier qui modifie ARGV puis utiliser '-r' pour l'inclure.

$ echo 'ARGV = ["testing", "1","2","3"]' > ~/blah.rb && irb -r ./blah test.rb 
/home/me/blah.rb:1: warning: already initialized constant ARGV
test.rb(main):001:0> require 'pp'
=> true
test.rb(main):002:0* pp ARGV
["testing", "1", "2", "3"]
=> ["testing", "1", "2", "3"]
test.rb(main):003:0> 


0 commentaires