2010-04-16 9 views
5

Comme je suis en train de parcourir mon parcours en adoptant le langage Ruby, je passe beaucoup de temps à l'intérieur d'IRb. C'est juste fantastique! Mais, comme je ne suis pas très au courant de ses capacités, et encore « nubby » avec Ruby, je voudrais savoir ce qui suit:IRb: comment démarrer une session ruby ​​interactive avec des classes préchargées

  • Comment puis-je « flush » la session, sans redémarrer IRb (ou est ce n'est pas possible).
  • Comment puis-je configurer IRb pour charger un tas de fichiers sources "hello.rb" et "hello_objects.rb", c'est-à-dire au démarrage? J'y travaille intensément et il serait bon de connaître une petite main pour charger ces classes, sans taper manuellement 'load' pour chacune d'elles.

Répondre

16

Je ne suis pas sûr qu'il est possible de «vider» une session. Cependant, vous pouvez charger vos classes comme ceci:

irb -r 'hello.rb' -r 'hello_objects.rb' 
+0

Nice, merci beaucoup! – Shyam

+3

Peut être utile de mettre tous vos besoins dans un seul fichier rb, puis en exiger seulement un. – Beanish

2

Vous pouvez mettre n'importe quel code ruby ​​dans votre fichier ~/.irbrc, qui sera évalué chaque fois que vous exécutez irb. Dans ce cas, vos instructions require.

2

Ce ne sont pas des réponses directes mais peuvent s'appliquer à votre désir de mieux comprendre.

Un certain nombre de méthodes "irb" sont disponibles pour l'objet console.

methods.grep(/irb/).sort 
=> ["irb", "irb_bindings", "irb_cb", "irb_change_binding", "irb_change_workspace", 
"irb_chws", "irb_context", "irb_current_working_binding", "irb_current_working_workspace", 
"irb_cwb", "irb_cws", "irb_cwws", "irb_exit", "irb_fg", "irb_jobs", "irb_kill", "irb_load", 
"irb_pop_binding", "irb_pop_workspace", "irb_popb", "irb_popws", "irb_print_working_binding", 
"irb_print_working_workspace", "irb_push_binding", "irb_push_workspace", "irb_pushb", 
"irb_pushws", "irb_pwb", "irb_pwws", "irb_quit", "irb_require", "irb_source", "irb_workspaces"] 

Amusez-vous à jouer avec ceux-ci.

Une autre est l'objet « ConF » qui donne des commentaires sur votre environnement irb:

conf 
=> conf.ap_name="irb" 
conf.auto_indent_mode=false 
conf.back_trace_limit=16 
conf.debug_level=1 
conf.echo=true 
conf.ignore_eof=false 
conf.ignore_sigint=true 
conf.inspect_mode=nil 
conf.io=#<IRB::StdioInputMethod:0x79da0> 
conf.irb=#<IRB::Irb:0x7c58c> 
conf.irb_name="irb" 
conf.irb_path="(irb)" 
conf.last_value=... 
conf.line_no=6 
conf.load_modules=[] 
conf.prompt_c="%N(%m):%03n:%i* " 
conf.prompt_i="%N(%m):%03n:%i> " 
conf.prompt_mode=:DEFAULT 
conf.prompt_s="%N(%m):%03n:%i%l " 
conf.rc=true 
conf.return_format="=> %s\n" 
conf.thread=#<Thread:0x31790 run> 
conf.use_readline=false 
conf.verbose=nil 
conf.workspace=#<IRB::WorkSpace:0x7aa84 @main=main, @binding=#<Binding:0x7a2a0>> 
3

Je crois que ce que vous cherchez est de modifier votre fichier ~/.irbrc. Il a été mentionné plus tôt, mais aucun exemple donné. Voici un petit exemple d'utilisation de certains utilitaires courants que vous pouvez souhaiter dans votre session IRB:

# Print to yaml format with "y" 
require 'yaml' 
# Pretty printing 
require 'pp' 
# Ability to load rubygem modules 
require 'rubygems' 
# Tab completion 
require 'irb/completion'