Я прохожу через PragProg Continuous Testing With Ruby, где они говорят о вызове IRB
в контексте текущего класса для проверки кода вручную.
Однако они цитируют, что если вы вызываете IRB.start
в классе, self предопределен и ссылается на объект, в котором мы были, когда start был вызван, что в моем случае неверно.
Даже для очень простого примера, например
a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
Когда я пытаюсь получить доступ к переменной a
, я получаю очевидную
NameError: undefined local variable or method `a' for main:Object
Он работает только тогда, когда я изменяю a
на глобальную переменную
$a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
тогда я могу получить к нему доступ
irb(main):001:0> $a
=> 1
Есть ли какой-либо путь для доступа к локальным и переменным экземпляра в текущем классе?