1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/xml.rb
Paul Thornthwaite 1768f2a37e [GH-2711] Add Fog::XML::Connection
Attempting to move to using Fog::XML::SAXParserConnection directly
failed because the arguments changed.

This adds another compatibility level with two key differences:

1) It's namespaced within XML so stands out as not being part of core
2) It is NOT creating deprecation warnings so can be used as the final
   step if rewriting to use SAXParserConnection is undesired

So when merged Fog::Connection usage will create noise.

Fog::XML::Connection works the same way and will be extracted to
"fog/xml" when we get to it.

Fog::Core::Connection just wraps Excon.request and leaves the response
body parsing to the provider.
2014-02-27 00:54:16 +00:00

29 lines
774 B
Ruby

require "nokogiri"
require "fog/core/parser"
require "fog/xml/sax_parser_connection"
module Fog
# @note Extracting XML components out of core is a work in progress.
#
# The {XML} module includes functionality that is common between APIs using
# XML to send and receive data.
#
# The intent is to provide common code for provider APIs using XML but not
# require it for those using JSON.
#
# @todo Add +require "fog/xml"+ and/or +include Fog::XML+ to providers using
# its services
#
module XML
class Connection < Fog::XML::SAXParserConnection
def request(params, &block)
if (parser = params.delete(:parser))
super(parser, params)
else
original_request(params)
end
end
end
end
end