Class: GenesisRuby::Builders::Xml

Inherits:
Base
  • Object
show all
Defined in:
lib/genesis_ruby/builders/xml.rb

Overview

XML, Nokogiri Builder Implementation

Instance Method Summary collapse

Constructor Details

#initializeXml

Initialize Nokogiri XML Builder



12
13
14
15
# File 'lib/genesis_ruby/builders/xml.rb', line 12

def initialize
  @builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8')
  super
end

Instance Method Details

#outputObject

Generated XMl Document



18
19
20
# File 'lib/genesis_ruby/builders/xml.rb', line 18

def output
  builder.to_xml
end

#populate_nodes(structure) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/genesis_ruby/builders/xml.rb', line 22

def populate_nodes(structure)
  root_element, data = if structure.length == 1
                         [structure.keys.first, structure.values.first]
                       else
                         ['root', structure.values.first]
                       end

  builder.method_missing(root_element, fetch_attributes(data)) { |xml| generate(data) } unless data.nil? # rubocop:disable Lint/UnusedBlockArgument
end