Class: OoxmlParser::Numbering
- Inherits:
-
OOXMLDocumentObject
- Object
- OOXMLDocumentObject
- OoxmlParser::Numbering
- Defined in:
- lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb
Instance Attribute Summary collapse
-
#abstract_numbering_list ⇒ Array, AbstractNumbering
Abstract numbering list.
-
#numbering_definition_list ⇒ Array, NumberingDefinition
Numbering definition list.
Attributes inherited from OOXMLDocumentObject
Instance Method Summary collapse
-
#initialize(parent: nil) ⇒ Numbering
constructor
A new instance of Numbering.
- #parse ⇒ Object
- #properties_by_num_id(num_id) ⇒ Object
Methods inherited from OOXMLDocumentObject
#==, add_to_xmls_stack, copy_file_and_rename_to_zip, current_xml, dir, encrypted_file?, get_link_from_rels, unzip_file, #with_data?
Methods included from OoxmlDocumentObjectHelper
Constructor Details
#initialize(parent: nil) ⇒ Numbering
Returns a new instance of Numbering.
11 12 13 14 15 |
# File 'lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb', line 11 def initialize(parent: nil) @abstract_numbering_list = [] @numbering_definition_list = [] @parent = parent end |
Instance Attribute Details
#abstract_numbering_list ⇒ Array, AbstractNumbering
Returns abstract numbering list.
7 8 9 |
# File 'lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb', line 7 def abstract_numbering_list @abstract_numbering_list end |
#numbering_definition_list ⇒ Array, NumberingDefinition
Returns numbering definition list.
9 10 11 |
# File 'lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb', line 9 def numbering_definition_list @numbering_definition_list end |
Instance Method Details
#parse ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb', line 30 def parse numbering_xml = OOXMLDocumentObject.path_to_folder + 'word/numbering.xml' return nil unless File.exist?(numbering_xml) node = Nokogiri::XML(File.open(numbering_xml), 'r:UTF-8') node.xpath('w:numbering/*').each do |numbering_child_node| case numbering_child_node.name when 'abstractNum' @abstract_numbering_list << AbstractNumbering.new(parent: self).parse(numbering_child_node) when 'num' @numbering_definition_list << NumberingDefinition.new(parent: self).parse(numbering_child_node) end end self end |
#properties_by_num_id(num_id) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb', line 17 def properties_by_num_id(num_id) abstract_num_id = nil @numbering_definition_list.each do |num_def| next unless num_id == num_def.id abstract_num_id = num_def.abstract_numbering_id.value break end return nil if abstract_num_id.nil? @abstract_numbering_list.each do |abstract_num_item| return abstract_num_item if abstract_num_id == abstract_num_item.id end end |