时间:2011-01-19 22:47:45

标签: jruby

使用Ruby 1.8,FeedTools能够在给定非馈送链接的情况下获取和解析rss / atom feed链接。例如:

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 feed链接。例如:

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]   似乎不是一个饲料。

关于如何让FeedTools与JRuby一起使用的任何想法?

1 个答案:

答案 0 :(得分:1)

feedtools gem中似乎存在一个错误。在使用给定mime类型定位feed链接的方法中,将'lambda'替换为'proc.new',以便在找到feed链接时从proc内部返回方法。

--- 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 ==