我目前正在将旧项目从旧版本的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>
答案 0 :(得分:1)
instance_variables.map { |v| [v, instance_variable_get(v)] }
不完全是哈希地图,但你会很好。