Class: Dachsfisch::XML2JSONConverter

Inherits:
ConverterBase show all
Defined in:
lib/dachsfisch/xml2_json_converter.rb

Instance Method Summary collapse

Methods inherited from ConverterBase

perform

Constructor Details

#initialize(xml:) ⇒ XML2JSONConverter

Returns a new instance of XML2JSONConverter.



5
6
7
8
9
10
# File 'lib/dachsfisch/xml2_json_converter.rb', line 5

def initialize(xml:)
  super()
  @fragment = Nokogiri::XML::DocumentFragment.parse(xml)
  raise InvalidXMLInputError.new('input empty') if xml.nil? || xml.empty?
  raise InvalidXMLInputError.new(@fragment.errors) if @fragment.errors.length.positive?
end

Instance Method Details

#executeObject



12
13
14
15
16
17
18
# File 'lib/dachsfisch/xml2_json_converter.rb', line 12

def execute
  result = {}
  @fragment.elements.deconstruct.each do |root|
    result[node_name(root)] = extract_node(root)
  end
  result.to_json
end