Ruby:如何设置feedjira配置选项?
问题描述:
在Feedjira 2.0的公告博客文章中,它表示如果你想设置用户代理,那应该是一个配置选项,但目前还不清楚如何做到这一点。理想情况下,我想模仿之前在Feedjira 1.0中提供的选项,包括user_agent,if_modified_since,timeout和ssl_verify_peer。Ruby:如何设置feedjira配置选项?
feed_parsed = Feedjira::Feed.fetch_and_parse("http://sports.espn.go.com/espn/rss/news", {:if_modified_since => Time.now, :ssl_verify_peer => false, :timeout => 5, :user_agent => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36"})
其中配置选项被设置为从一个我所看到的仅仅是示例:
http://feedjira.com/blog/2014/04/14/thoughts-on-version-two-point-oh.html
随着Feedjira 1.0,则可以通过使下面的调用(如所描述的here)设置这些选项comment在github上拉的要求,主要内容如下:
Feedjira::Feed.configure do |faraday|
faraday.request :user_agent, app: "MySite", version: APP_VERSION
end
但是,当我尝试了一些类似的事情,我收到以下错误:
undefined method `configure' for Feedjira::Feed:Class
答
它看起来像被添加到允许超时选项将被传递给fetch_and_parse功能的补丁: https://github.com/feedjira/feedjira/pull/318/commits/fbdb85b622f72067683508b1d7cab66af6303297#diff-a29beef397e3d8624e10af065da09a14
然而,直到被实时推送,一个超时和一个open_timeout选项可以通过绕过Feedjira来获取,而不是使用Faraday(或任何可以获取HTTP请求的库,比如Net :: HTTP)。您还可以设置SSL验证为假,并设置用户代理,像这样的:
require 'feedjira'
require 'pp'
url = "http://www.espn.com/espnw/rss/?sectionKey=athletes-life"
conn = Faraday.new :ssl => {:verify => false}
response = conn.get do |request|
request.url url
request.options.timeout = 5
request.options.open_timeout = 5
request.headers = {'User-Agent' => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36"}
end
feed_parsed = Feedjira::Feed.parse response.body
pp feed_parsed.entries.first
我还没有看到一个方法来检查“if_modified_since”,但如果我这样做,我会更新的答案。
请阅读“[问]”,包括链接的页面和“[mcve]”。我们需要查看演示你所尝试的最小代码,并解释它为什么不起作用。目前你的问题很广泛。 –