有没有办法在调用此方法时获取实现Ruby方法的方法列表?
例如:
def foo
puts "foo"
end
def foo2
foo
end
Run Code Online (Sandbox Code Playgroud)
我想知道,当调用"foo2"时,它调用第一个"foo"和第二个"puts"以及这些方法定义的相应文件.(如果"put"调用其他方法,我也想知道它们)
那可能吗?如果'是'怎么样?我可以说我的问题是找到方法依赖项.
您可以使用set_trace_func来获取此信息,但由于 Ruby 是动态的,您还需要测试代码来调用方法,以便打印调用顺序。
set_trace_func proc { |event, filename, line, id, binding, klass| puts "#{klass}##{id}" }
Run Code Online (Sandbox Code Playgroud)
在 Ruby 2.0 中,TracePoint是一个更好的替代方案。