打印一个对象的唯一方法



我正在试验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中,我使用具有popoc方法的接线宝石,做类似的事情:

irb> po page

更新:这些天我使用撬。当Pry可用时,ls命令工作得很好:

pry> ls page

可能是inspect ?

puts page.inspect

另一种选择是page.class.instance_methods(false),但是如果page的类包含具有您想要了解的方法的模块,则可能无法工作。

相关内容

  • 没有找到相关文章

最新更新