Pregunta

Como estoy pasando por mi viaje al adoptar el lenguaje Ruby, que pasan mucho tiempo en el interior 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:

  • ¿Cómo puedo “flush” la sesión, sin necesidad de reiniciar IRB (o es que esto no es posible).
  • ¿Cómo puedo configurar IRB para cargar un montón de archivos de origen "hello.rb" y "hello_objects.rb", es decir, en el arranque? Estoy en gran medida que trabajan en estas y sería bueno saber una mano corta para cargar estas clases, sin necesidad de escribir manualmente 'carga' para cada nuevo.
¿Fue útil?

Solución

No estoy seguro de que es posible 'ras' una sesión. Sin embargo, puede cargar sus clases como esto:

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

Otros consejos

Se puede administrar sesiones en IRB. IRB iniciar y probar este:

x=1
irb     # Opens a new session
puts x  # error
jobs    # lists sessions
quit    # kills current session
puts x  # 1

También existe la "fg (número)" de comandos que puedan cambiarse de sesiones. Ver: http://tagaholic.me/2009/05/11/demystifying -irb-commands.html

Creo que lo que estás buscando es modificar su archivo ~ / .irbrc. Se mencionó anteriormente, pero no hay ejemplos dados. Aquí está un ejemplo corto de requerir algunas utilidades más 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'

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

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

Un número de métodos "IRB" están 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"]

Pasar un buen rato 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>>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top