【发布时间】:2019-01-07 13:16:58
【问题描述】:
是否可以从 Ruby 文件中访问 Pry 的 show-source 方法?如果是这样,这是怎么做的?
例如,如果我有这个文件:
# testing.rb
require 'pry'
def testing
puts 'hi'
end
puts show-source testing
然后运行ruby testing.rb,我想要输出:
Owner: testing.rb
Visibility: public
Number of lines: 3
def testing
puts 'hi'
end
为了解释这一点,我有一个对方法进行存根的测试,尽管原始方法似乎偶尔会被调用,我认为输出调用的源以查看它的来源会很方便。我知道有更简单的方法可以做到这一点,尽管从这个兔子洞开始并且有兴趣看看这是否可以做到:)
运行稍微有点头疼的show-source show-source 会显示Pry::Command::ShowSource 类中的一些方法,该类继承自Pry::Command::ShowInfo。
Pry::Command::ShowSource 显示了三个方法:options、process 和 content_for,尽管我无法成功调用任何方法。
我最好的假设是 content_for 方法处理这个问题,使用从父类分配的代码对象(即Pry::CodeObject.lookup(obj_name, _pry_, :super => opts[:super])),尽管我无法破解这个问题。
有人对此有任何想法或示例吗?
【问题讨论】:
标签: ruby-on-rails ruby pry