使用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一起使用的任何想法?
答案 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 ==