Class: Renalware::Feeds::Files::Practices::XmlParser

Inherits:
Object
  • Object
show all
Defined in:
app/models/renalware/feeds/files/practices/xml_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(node, &block) ⇒ XmlParser

Returns a new instance of XmlParser.



50
51
52
53
54
55
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 50

def initialize(node, &block)
  @node = node
  @node.each do
    self.instance_eval(&block)
  end
end

Instance Method Details

#attribute(attribute) ⇒ Object



73
74
75
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 73

def attribute(attribute)
  @node.attribute(attribute)
end

#for_element(name, &block) ⇒ Object



77
78
79
80
81
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 77

def for_element(name, &block)
  return unless self.name == name and is_start?

  self.instance_eval(&block)
end

#inner_xmlObject



61
62
63
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 61

def inner_xml
  @node.inner_xml.strip
end

#inside_element(name = nil, &block) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 83

def inside_element(name=nil, &block)
  return if @node.self_closing?
  return unless name.nil? or (self.name == name and is_start?)

  name = @node.name
  depth = @node.depth

  @node.each do
    return if self.name == name and is_end? and @node.depth == depth

    self.instance_eval(&block)
  end
end

#is_end?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 69

def is_end?
  @node.node_type == Nokogiri::XML::Reader::TYPE_END_ELEMENT
end

#is_start?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 65

def is_start?
  @node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
end

#nameObject



57
58
59
# File 'app/models/renalware/feeds/files/practices/xml_parser.rb', line 57

def name
  @node.name
end