我刚刚通过PragProg 使用Ruby进行连续测试,他们谈论在当前类的上下文中调用IRB
以手动检查代码。如何在当前类的上下文中运行IRB.start
然而,他们报价,如果你在一个类中调用IRB.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
是否有任何方法可以访问当前类中的本地变量和实例变量?
不幸的是,这是JRuby下的一个禁区。 – 2011-03-10 08:14:23
你应该打开一个问题:https://github.com/cldwalker/ripl/issues。 ripl已被验证在jruby上工作 – cldwalker 2011-03-10 21:26:25
其次,建议避免IRB。撬是另一种选择。 – 2012-05-27 05:02:04