Class: Spidy::Connector::Xml
- Inherits:
-
Object
- Object
- Spidy::Connector::Xml
- Includes:
- StaticAccessor
- Defined in:
- lib/spidy/connector/xml.rb
Overview
xml
Instance Method Summary collapse
- #call(url, &block) ⇒ Object
- #connect(url, &block) ⇒ Object
-
#initialize(user_agent:) ⇒ Xml
constructor
A new instance of Xml.
Constructor Details
#initialize(user_agent:) ⇒ Xml
Returns a new instance of Xml.
23 24 25 |
# File 'lib/spidy/connector/xml.rb', line 23 def initialize(user_agent:) @user_agent = user_agent end |
Instance Method Details
#call(url, &block) ⇒ Object
9 10 11 12 13 |
# File 'lib/spidy/connector/xml.rb', line 9 def call(url, &block) fail 'URL is undefined' if url.blank? connect(url, &block) end |
#connect(url, &block) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/spidy/connector/xml.rb', line 15 def connect(url, &block) OpenURI.open_uri(url, 'User-Agent' => @user_agent) do |body| block.call Nokogiri::XML(body.read.gsub(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/, ''), url) end rescue OpenURI::HTTPError => e raise Spidy::Connector::Retry.new(error: e, response_code: e.io.status[0]) end |