2011-05-21 57 views
1

我正在嘗試將RSS解析器集成到我的IRC bot中,並且我發現了一些簡單的代碼可以在線執行,但是,如果我將此代碼放入BOT,我得到這個:Ruby RSS - 私人方法發送調用RSS:REXMLListener

Error: private method `send' called for #<RSS::REXMLListener:0x3d7c790> 

我不知道爲什麼它給了我這個錯誤,因爲它在IRB或自己的私人腳本工作正常。 這是代碼和導致錯誤的行。

def fetch_rss_items(url, max_items = nil) 
    %w{open-uri rss/0.9 rss/1.0 rss/2.0 rss/parser}.each do |lib| 
     require(lib) 
    end 

    rss = RSS::Parser.parse(open(url).read) #This line is causing the error 
    rss.items[0...(max_items ? max_items : rss.items.length)] 
end 

回答

0

我敢肯定,我只是有同樣的問題:

私有方法send' called for #<Nokogiri::CSS::XPathVisitor:0x31b6108>; c:/ruby192/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3.1-x86-mingw32/lib/nokogiri/css/node.rb:17:in接受」

的問題是,什麼地方你都宣稱功能send,和: ruby​​的默認命名空間是Object類,並且您在默認命名空間中定義的方法被認爲是私有方法Object

http://railsforum.com/viewtopic.php?id=31016

P.S:任何人知道如何避免這樣的錯誤?