Como executar o IRB.start no contexto da classe atual
Eu apenas passei pelo PragProgTeste contínuo com Ruby, onde eles falam sobre invocarIRB
no contexto da classe atual para inspecionar o código manualmente.
No entanto, eles citam que, se você invocarIRB.start
em uma aula,self é predefinido e refere-se ao objeto em que estávamos quando start foi chamado o que não é verdade no meu caso.
Mesmo para um exemplo muito simples como
a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
Quando tento acessar oa
variável, eu obtenho o óbvio
NameError: undefined local variable or method `a' for main:Object
Funciona apenas quando mudoa
para variável global
$a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
então eu posso acessá-lo
irb(main):001:0> $a
=> 1
Existe alguma maneira de contornar isso para acessar variáveis locais e de instância na classe atual?