user582217
user582217

Reputation: 11

FeedTools behaves differently with JRuby

With Ruby 1.8, FeedTools is able to get and parse rss/atom feed links given a non-feed link. For eg:

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" 

Whereas, with JRuby 1.5.2, FeedTools is unable to get and parse rss/atom feed links given a non-feed link. For eg:

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 

At times, it also gives the following error:

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

Any ideas on how I can get FeedTools to work with JRuby?

Upvotes: 0

Views: 91

Answers (1)

user582217
user582217

Reputation: 11

There seems to be a bug in the feedtools gem. In the method to locate feed links with a given mime type, replace 'lambda' with 'Proc.new' to return from the method from inside the proc when the feed link is found.

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

Upvotes: 1

Related Questions