2010-04-16 15 views
5

Como estoy siguiendo mi camino adoptando el lenguaje Ruby, paso mucho tiempo dentro de IRb. ¡Es simplemente fantástico! Pero, como no soy muy consciente de sus capacidades, y sigue siendo un “nudosa” con Ruby, me gustaría saber lo siguiente:IRb: cómo iniciar una sesión interactiva de ruby ​​con las clases precargadas

  • ¿Cómo puedo “flush” la sesión, sin necesidad de reiniciar del IRB (o está esto no es posible).
  • ¿Cómo puedo configurar IRb para cargar varios archivos fuente "hello.rb" y "hello_objects.rb", es decir, al inicio? Estoy trabajando intensamente en estos y sería bueno conocer una mano corta para cargar estas clases, sin escribir manualmente "cargar" para cada una de nuevo.

Respuesta

16

No estoy seguro de que sea posible 'purgar' una sesión. Sin embargo, puede cargar sus clases de esta manera:

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

¡Muchas gracias! – Shyam

+3

Podría ser útil poner todas sus necesidades en un solo archivo rb y luego simplemente requerirlo. – Beanish

2

se puede poner cualquier código de rubí en su archivo ~/.irbrc, que conseguirá evaluado cada vez que se ejecuta IRB. En este caso, sus declaraciones requieren.

2

Estas no son respuestas directas, pero pueden aplicarse a su deseo de comprender más.

Hay una cantidad de métodos "irb" disponibles para el objeto de la consola.

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"] 

Diviértase jugando con ellos.

Otro es el objeto "conf" que da información sobre su entorno 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

Creo que lo que estás buscando es modificar su archivo ~/.irbrc. Se mencionó anteriormente, pero no se dieron ejemplos. Aquí hay un breve ejemplo de la necesidad de algunos servicios comunes que puede desear en su sesión de 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' 
Cuestiones relacionadas