2011-01-19 8 views
0

Ruby 1.8では、FeedToolsは非フィードリンクを指定してrss/atomフィードリンクを取得して解析できます。例えばのため:FeedToolsはJRubyとは異なる動作をします

ruby-1.8.7-p174 > f = FeedTools::Feed.open("http://techcrunch.com/") 
=> #<FeedTools::Feed:0xc99cf8 URL:http://feeds.feedburner.com/TechCrunch> 
ruby-1.8.7-p174 > f.title 
=> "TechCrunch" 

、一方のJRuby 1.5.2で、FeedToolsを取得し、RSS /非フィードリンクを与えAtomフィードのリンクを解析することができません。例えばのため:

jruby-1.5.2 > f = FeedTools::Feed.open("http://techcrunch.com/")        
=> #<FeedTools::Feed:0x1206 URL:http://techcrunch.com/> 
jruby-1.5.2 > f.title           
=> nil 

回で、それはまた、次のエラーを与える:

FeedTools::FeedAccessError: [URL] does not appear to be a feed.

私はFeedToolsはJRubyので動作するように取得する方法上の任意のアイデアを?

答えて

1

フィードツールの宝石にバグがあるようです。与えられたMIMEタイプのフィードリンクを見つける方法では、フィードリンクが見つかったときにproc内からメソッドから戻るために 'lambda'を 'Proc.new'に置き換えます。

--- a/feedtools-0.2.29/lib/feed_tools/helpers/html_helper.rb 
+++ b/feedtools-0.2.29/lib/feed_tools/helpers/html_helper.rb 
@@ -620,7 +620,7 @@ 
     end 
     end 
     get_link_nodes.call(document.root) 
-  process_link_nodes = lambda do |links| 
+  process_link_nodes = Proc.new do |links| 
     for link in links 
      next unless link.kind_of?(REXML::Element) 
      if link.attributes['type'].to_s.strip.downcase == 
関連する問題