Ruby肯定会在运行时存储这些信息,因为它打印在堆栈跟踪中 - 但似乎没有任何明显的方法来访问它。有解决方案吗? (除了点击源代码,或者将无意义的参数传递给方法以获得堆栈跟踪)
答案 0 :(得分:3)
在Ruby 1.9中,您有Method#source_location:
require 'yaml'
p YAML.method(:load).source_location => ["C:/Ruby19/lib/ruby/1.9.1/yaml.rb", 132]
似乎有一个请求将source_location反向移植到1.8(http://redmine.ruby-lang.org/issues/show/2180),但我不确定是否/何时会发生这种情况。
答案 1 :(得分:1)