Class: Praxis::Handlers::XML
- Inherits:
-
Object
- Object
- Praxis::Handlers::XML
- Defined in:
- lib/praxis/handlers/xml.rb
Instance Method Summary collapse
-
#generate(structured_data) ⇒ String
Generate a pretty-printed XML document from structured data.
-
#initialize ⇒ XML
constructor
Construct an XML handler and initialize any related libraries.
-
#parse(document) ⇒ Hash, Array
Parse an XML document into structured data.
Constructor Details
#initialize ⇒ XML
Construct an XML handler and initialize any related libraries.
7 8 9 10 11 12 13 14 15 |
# File 'lib/praxis/handlers/xml.rb', line 7 def initialize require 'nokogiri' require 'builder' require 'active_support' ActiveSupport::XmlMini.backend = 'Nokogiri' rescue LoadError raise Praxis::Exceptions::InvalidConfiguration, "XML handler depends on builder ~> 3.2 and nokogiri ~> 1.6; please add them to your Gemfile" end |
Instance Method Details
#generate(structured_data) ⇒ String
Generate a pretty-printed XML document from structured data.
30 31 32 33 |
# File 'lib/praxis/handlers/xml.rb', line 30 def generate(structured_data) # courtesy of active_support + builder structured_data.to_xml end |
#parse(document) ⇒ Hash, Array
Parse an XML document into structured data.
21 22 23 24 |
# File 'lib/praxis/handlers/xml.rb', line 21 def parse(document) p = Nokogiri::XML(document) process(p.root, p.root.attributes['type']) end |