混合调试器命令和ruby代码评估

时间:2015-03-06 19:24:09

标签: ruby-on-rails ruby debugging

我目前正在将旧项目从旧版本的ruby(1.8.7)/ rails(3.0)升级到1.9.3 / 3.1(作为新版本的垫脚石)。

我使用gems debugger表示1.9.3,ruby-debug表示1.8.7

当我运行时,我可以运行info variables之类的命令来获取所有当前范围变量的列表和值:

...
@current_phone = nil
@fields = {}
@global = {:source_type=>"pdf"}
@images = []
@index = {}
@lines = []
...

此外,我可以运行任意ruby代码 - 我一直在使用的是

File.open("/tmp/new_version", "w"){|f|f.write(@fields)}

这对我来说很有用,可以使用文件差异程序在旧版本和新版本之间进行快速比较。

我可以将这些链接在一起,以便我可以将info variables的所有输出写入文件吗?如果我能做到就足够了

tempvar = info variables

或其他类似的东西,当然,但这给出了

*** NameError Exception: undefined local variable or method `variables' for <ClassWhatever>

1 个答案:

答案 0 :(得分:1)

instance_variables.map { |v| [v, instance_variable_get(v)] }

不完全是哈希地图,但你会很好。