在Ruby中获取顶级命名空间

时间:2011-07-05 21:40:50

标签: ruby namespaces diagnostics

我如何在Ruby中执行此操作?:

有时候对于解释性语言的诊断,我可以更快地对代码进行快速更改,将对象抛入顶级命名空间,然后在交互式环境中将其弄乱。

在Python中,我将其添加到我的代码中:

import __main__
__main__.[field] = [my problematic object]

...然后使用命令python -i [myfilename]运行该文件。知道如何访问Ruby中的顶级命名空间吗?

1 个答案:

答案 0 :(得分:3)

我建议您使用Pry

运行gem install pry安装pry。然后在要启动交互式会话的位置添加以下代码。

require 'pry'
binding.pry

交互式会话的一个例子。

$ cat debug.rb
a = 7
b = 6
product = a * b
require 'pry'
binding.pry
puts "The answer is: #{product}"

$ ruby debug.rb

From: debug.rb @ line 5 in Object#N/A:

     1: a = 7
     2: b = 6
     3: product = a * b
     4: require 'pry'
 =>  5: binding.pry
     6: puts "The answer is: #{product}"
pry(main)> product
=> 42
pry(main)> product = -1 * a * b
=> -42
pry(main)> exit
The answer is: -42