Class: ZerigoDNS::Middleware::Xml

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/zerigodns/middleware/xml.rb

Overview

Simple XML parsing middleware for Faraday. uses multi_xml.

Constant Summary collapse

XML_REGEXP =
/xml/

Instance Method Summary collapse

Instance Method Details

#call(request_env) ⇒ Faraday::Response

Parse the XML, if XML exists. Note: This must return the response in order for the stack of middleware to continue.

Returns:

  • (Faraday::Response)

    The response received



11
12
13
14
15
16
17
18
19
# File 'lib/zerigodns/middleware/xml.rb', line 11

def call request_env
  @app.call(request_env).on_complete do |response|
    if xml?(response)
      response[:raw_body] = response[:body]
      response[:body] = MultiXml.parse(response[:body])
    end
    response
  end
end