He estado examinando PragProg Pruebas continuas con Ruby, donde se habla de invocar IRB
en el contexto de la clase actual para inspeccionar el código manualmente.Cómo ejecutar IRB.start en el contexto de la clase actual
Sin embargo, se cita que si se invoca IRB.start
en una clase, auto está predefinido, y se refiere al objeto que se encontraba al inicio fue llamado cual no es cierto en mi caso.
Incluso para ejemplo muy simple como
a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
Cuando intento acceder a la variable a
, tengo la obvia
NameError: undefined local variable or method `a' for main:Object
Sólo funciona cuando cambio a
a la variable global
$a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
entonces puedo acceder a él
irb(main):001:0> $a
=> 1
¿Hay alguna forma de evitar esto para acceder a las variables locales y de instancia en la clase actual?
Desafortunadamente, este es un no-go bajo JRuby. –
Debe abrir un problema: https://github.com/cldwalker/ripl/issues. Se ha verificado que ripl trabaja en jruby – cldwalker
Segundo, el consejo es evitar el IRB para esto. Pry es otra opción. –