Module: Axlsx::Parser

Defined in:
lib/axlsx/util/parser.rb

Overview

The Parser module mixes in a number of methods to help in generating a model from xml This module is not included in the axlsx library at this time. It is for future development only,

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#parser_xmlObject

The xml to be parsed


8
9
10
# File 'lib/axlsx/util/parser.rb', line 8

def parser_xml
  @parser_xml
end

Instance Method Details

#parse_float(attr_name, xpath) ⇒ Object

parse, convert and assign node text to float


30
31
32
33
34
# File 'lib/axlsx/util/parser.rb', line 30

def parse_float attr_name, xpath
  v = parse_value xpath
  v = v.to_f if v.respond_to?(:to_f)
  send("#{attr_name.to_s}=", v)
end

#parse_integer(attr_name, xpath) ⇒ Object

parse, convert and assign note text to integer


23
24
25
26
27
# File 'lib/axlsx/util/parser.rb', line 23

def parse_integer attr_name, xpath
  v = parse_value xpath
  v = v.to_i if v.respond_to?(:to_i)
  send("#{attr_name.to_s}=", v)
end

#parse_string(attr_name, xpath) ⇒ Object

parse and assign string attribute


11
12
13
# File 'lib/axlsx/util/parser.rb', line 11

def parse_string attr_name, xpath
  send("#{attr_name.to_s}=", parse_value(xpath))
end

#parse_symbol(attr_name, xpath) ⇒ Object

parse convert and assign node text to symbol


16
17
18
19
20
# File 'lib/axlsx/util/parser.rb', line 16

def parse_symbol attr_name, xpath
  v = parse_value xpath
  v = v.to_sym unless v.nil?
  send("#{attr_name.to_s}=", v)
end

#parse_value(xpath) ⇒ Object

return node text based on xpath


37
38
39
40
41
# File 'lib/axlsx/util/parser.rb', line 37

def parse_value xpath
  node = parser_xml.xpath(xpath)
  return nil if node.empty?
  node.text.strip
end