Class: X12::XMLDefinitions

Inherits:
Hash
  • Object
show all
Defined in:
lib/x12/xmldefinitions.rb

Overview

A class for parsing X12 message definition expressed in XML format.

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ XMLDefinitions

Parse definitions out of XML file



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/x12/xmldefinitions.rb', line 34

def initialize(str)
  doc = LibXML::XML::Document.string(str)
  definitions = doc.root.name =~ /^Definition$/i ? doc.root.find('*').to_a : [doc.root]      
  
  definitions.each { |element|
    #puts element.name
    syntax_element = case element.name
                     when /table/i     
                       parse_table(element)
                     when /segment/i 
                       parse_segment(element)
                     when /composite/i 
                       parse_composite(element)
                     when /loop/i
                       parse_loop(element)
                     end
    self[syntax_element.class] ||= {}
    self[syntax_element.class][syntax_element.name]=syntax_element
  }
end