我正在试验Anemone,一个ruby网络蜘蛛框架。我想知道如何打印与对象相关的所有方法?例如,下面的代码输出puts page.url
,但我想知道除了url之外还有什么其他方法可用。如何打印出所有相关的方法?
require 'anemone'
Anemone.crawl("http://www.fsu.edu") do |anemone|
anemone.on_every_page do |page|
puts page.url
end
end
答案 puts (page.methods - Object.public_methods)
我用它来整理无趣的东西:
irb> pp (page.methods - Object.new.methods).sort
此外,从IRB中,我使用具有po
和poc
方法的接线宝石,做类似的事情:
irb> po page
更新:这些天我使用撬。当Pry可用时,ls
命令工作得很好:
pry> ls page
可能是inspect
?
puts page.inspect
另一种选择是page.class.instance_methods(false)
,但是如果page
的类包含具有您想要了解的方法的模块,则可能无法工作。