打印对象的独特方法

时间:2011-08-14 21:59:41

标签: ruby-on-rails ruby reflection

我正在尝试使用红宝石网络蜘蛛框架Anemone。我想知道如何打印与对象关联的所有方法?例如,下面的代码输出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)

3 个答案:

答案 0 :(得分:8)

我用这个来理清那些无趣的事情:

irb> pp (page.methods - Object.new.methods).sort

另外,从IRB我使用Wirble gem,它有popoc方法做类似的事情:

irb> po page

更新:这些天我使用Pry。当Pry可用时,ls命令效果很好:

pry> ls page

答案 1 :(得分:0)

也许inspect

puts page.inspect

答案 2 :(得分:0)

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

相关问题