Module: OM::XML::Container::ClassMethods
- Defined in:
- lib/om/xml/container.rb
Overview
Class Methods – These methods will be available on classes that include this Module
Instance Method Summary collapse
-
#from_xml(xml = nil, tmpl = self.new) ⇒ Object
Careful! If you call this from a constructor, be sure to provide something ‘ie.
-
#xml_template ⇒ Nokogiri::XML::Document
By default, new OM Document instances will create an empty xml document, but if you override self.xml_template to return a different object (e.g. Nokogiri::XML::Document), that will be created instead.
Instance Method Details
#from_xml(xml = nil, tmpl = self.new) ⇒ Object
Careful! If you call this from a constructor, be sure to provide something ‘ie. self’ as the @tmpl. Otherwise, you will get an infinite loop!
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/om/xml/container.rb', line 13 def from_xml(xml=nil, tmpl=self.new) # :nodoc: if xml.nil? # noop: handled in #ng_xml accessor.. tmpl.ng_xml = self.xml_template elsif xml.kind_of? Nokogiri::XML::Node tmpl.ng_xml = xml else tmpl.ng_xml = Nokogiri::XML::Document.parse(xml) end return tmpl end |
#xml_template ⇒ Nokogiri::XML::Document
By default, new OM Document instances will create an empty xml document, but if you override self.xml_template to return a different object (e.g. Nokogiri::XML::Document), that will be created instead. You can make this method create the documents however you want as long as it returns a Nokogiri::XML::Document. In the tutorials, we use Nokogiri::XML::Builder in this mehtod and call its .doc method at the end of xml_template in order to return the Nokogiri::XML::Document object. Instead of using Nokogiri::XML::Builder, you could put your template into an actual xml file and have xml_template use Nokogiri::XML::Document.parse to load it. That’s up to you.
28 29 30 |
# File 'lib/om/xml/container.rb', line 28 def xml_template Nokogiri::XML::Document.parse("") end |