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
-
#parser_xml ⇒ Object
The xml to be parsed.
Instance Method Summary collapse
-
#parse_float(attr_name, xpath) ⇒ Object
parse, convert and assign node text to float.
-
#parse_integer(attr_name, xpath) ⇒ Object
parse, convert and assign note text to integer.
-
#parse_string(attr_name, xpath) ⇒ Object
parse and assign string attribute.
-
#parse_symbol(attr_name, xpath) ⇒ Object
parse convert and assign node text to symbol.
-
#parse_value(xpath) ⇒ Object
return node text based on xpath.
Instance Attribute Details
#parser_xml ⇒ Object
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 |