ooxml_parser 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -5
  3. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/chart_style.rb +19 -0
  4. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice/math_text/math_paragraph.rb +18 -0
  5. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice/math_text.rb +19 -0
  6. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice.rb +20 -0
  7. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content.rb +20 -14
  8. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/order.rb +20 -0
  9. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_index.rb +20 -0
  10. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point/text_value.rb +15 -0
  11. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point.rb +31 -0
  12. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point_count.rb +20 -0
  13. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache.rb +31 -0
  14. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference.rb +25 -0
  15. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text.rb +23 -0
  16. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series.rb +39 -0
  17. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/view_3d.rb +32 -0
  18. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart.rb +81 -74
  19. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis.rb +20 -13
  20. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis_title.rb +15 -14
  21. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_cells_range.rb +15 -12
  22. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_legend.rb +15 -10
  23. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/display_labels_properties.rb +22 -11
  24. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/docx_drawing/doc_properties.rb +24 -0
  25. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/docx_drawing.rb +34 -20
  26. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_distance_from_text.rb +9 -10
  27. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_position.rb +18 -25
  28. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_properties.rb +4 -1
  29. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_wrap_drawing.rb +23 -20
  30. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/ooxml_coordinates.rb +15 -5
  31. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/ooxml_size.rb +104 -0
  32. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative/picture_dimension.rb +17 -0
  33. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative_horizontal.rb +31 -0
  34. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative_vertical.rb +30 -0
  35. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb +17 -16
  36. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip/file_reference.rb +34 -0
  37. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip.rb +12 -15
  38. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_picture.rb +15 -10
  39. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/common_non_visual_properties.rb +38 -0
  40. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/non_visual_properties/shape_placeholder.rb +21 -0
  41. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/non_visual_properties.rb +29 -0
  42. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties.rb +22 -0
  43. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/ooxml_text_box.rb +29 -0
  44. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/text_body.rb +26 -0
  45. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape.rb +27 -10
  46. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_body_properties/ooxml_shape_body_properties/preset_text_warp.rb +7 -4
  47. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_body_properties/ooxml_shape_body_properties.rb +20 -11
  48. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/docx_color_scheme.rb +18 -15
  49. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/docx_pattern_fill.rb +11 -9
  50. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/docx_custom_geometry/docx_shape_line_path/docx_shape_line_element.rb +39 -0
  51. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/docx_custom_geometry/docx_shape_line_path.rb +15 -27
  52. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/ooxml_custom_geometry.rb +13 -9
  53. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_color.rb +20 -23
  54. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_line.rb +27 -22
  55. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill/blip/alpha_mod_fix.rb +19 -0
  56. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill/blip.rb +21 -0
  57. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill.rb +24 -0
  58. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry/shape_adjust_value_list/shape_guide.rb +24 -0
  59. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry/shape_adjust_value_list.rb +31 -0
  60. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry.rb +24 -0
  61. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/text_box.rb +3 -3
  62. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties.rb +22 -13
  63. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_size.rb +20 -12
  64. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/line/line_end.rb +9 -8
  65. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/group/old_docx_group.rb +15 -13
  66. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/old_docx_picture.rb +14 -12
  67. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape.rb +15 -12
  68. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape_fill.rb +18 -14
  69. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape_properties.rb +12 -11
  70. data/lib/ooxml_parser/common_parser/common_data/borders_properties.rb +20 -24
  71. data/lib/ooxml_parser/common_parser/common_data/color/color_helper.rb +25 -0
  72. data/lib/ooxml_parser/common_parser/common_data/color.rb +48 -182
  73. data/lib/ooxml_parser/common_parser/common_data/colors/color_properties.rb +15 -10
  74. data/lib/ooxml_parser/common_parser/common_data/colors/hsl_color.rb +1 -63
  75. data/lib/ooxml_parser/common_parser/common_data/colors/image_fill.rb +17 -20
  76. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/gradient_stop/preset_color.rb +20 -0
  77. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/gradient_stop.rb +20 -7
  78. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/linear_gradient.rb +12 -11
  79. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color.rb +17 -17
  80. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/presentation_pattern.rb +15 -9
  81. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill.rb +19 -16
  82. data/lib/ooxml_parser/common_parser/common_data/colors/tile.rb +10 -6
  83. data/lib/ooxml_parser/common_parser/common_data/font_style.rb +1 -61
  84. data/lib/ooxml_parser/common_parser/common_data/hyperlink.rb +33 -26
  85. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object/ooxml_document_object_helper.rb +97 -0
  86. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object.rb +23 -37
  87. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_properties.rb +71 -23
  88. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/language.rb +20 -0
  89. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/outline.rb +11 -7
  90. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/position.rb +20 -0
  91. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/run_spacing.rb +20 -0
  92. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/run_style.rb +25 -0
  93. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/shade.rb +38 -0
  94. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/size.rb +20 -0
  95. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb +92 -40
  96. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run.rb +12 -8
  97. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering_properties.rb +37 -0
  98. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_borders.rb +53 -0
  99. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_spacing.rb +36 -0
  100. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/spacing.rb +6 -6
  101. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tab_list/presentation_tab.rb +26 -0
  102. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tab_list.rb +36 -0
  103. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs/paragraph_tab.rb +26 -0
  104. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs.rb +36 -0
  105. data/lib/ooxml_parser/common_parser/common_data/paragraph/text_field.rb +11 -8
  106. data/lib/ooxml_parser/common_parser/common_data/paragraph.rb +20 -12
  107. data/lib/ooxml_parser/common_parser/common_data/relationships/relationship.rb +13 -7
  108. data/lib/ooxml_parser/common_parser/common_data/relationships.rb +36 -4
  109. data/lib/ooxml_parser/common_parser/common_data/table/margins/paragraph_margins.rb +12 -8
  110. data/lib/ooxml_parser/common_parser/common_data/table/margins/table_margins.rb +18 -19
  111. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_element.rb +9 -8
  112. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_layout.rb +23 -0
  113. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_look.rb +17 -14
  114. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_position.rb +16 -23
  115. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style.rb +21 -40
  116. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_column_band_size.rb +23 -0
  117. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_properties/table_style_properties_helper.rb +42 -0
  118. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_properties.rb +50 -0
  119. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_row_band_size.rb +23 -0
  120. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell.rb +28 -23
  121. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell_properties/vertical_merge.rb +20 -0
  122. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell_properties.rb +71 -69
  123. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/merge.rb +18 -10
  124. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/border.rb +19 -17
  125. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/borders.rb +31 -48
  126. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/table_cell_line/line_join.rb +21 -0
  127. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/table_cell_line.rb +25 -19
  128. data/lib/ooxml_parser/common_parser/common_data/table/row/row/table_row_properties/table_row_height.rb +20 -0
  129. data/lib/ooxml_parser/common_parser/common_data/table/row/row/table_row_properties.rb +20 -10
  130. data/lib/ooxml_parser/common_parser/common_data/table/row/row.rb +20 -16
  131. data/lib/ooxml_parser/common_parser/common_data/table/table_grid/grid_column.rb +20 -0
  132. data/lib/ooxml_parser/common_parser/common_data/table/table_grid.rb +27 -3
  133. data/lib/ooxml_parser/common_parser/common_data/table/table_properties/table_borders.rb +20 -13
  134. data/lib/ooxml_parser/common_parser/common_data/table/table_properties.rb +54 -37
  135. data/lib/ooxml_parser/common_parser/common_data/table.rb +23 -17
  136. data/lib/ooxml_parser/common_parser/common_data/underline.rb +13 -10
  137. data/lib/ooxml_parser/common_parser/common_data/valued_child.rb +29 -0
  138. data/lib/ooxml_parser/common_parser/parser.rb +32 -4
  139. data/lib/ooxml_parser/configuration.rb +3 -13
  140. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comment.rb +1 -1
  141. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_background.rb +16 -16
  142. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_properties.rb +18 -13
  143. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_settings.rb +20 -0
  144. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_structure_helpers.rb +18 -0
  145. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_style/document_style_helper.rb +37 -0
  146. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_style.rb +43 -14
  147. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/bookmark.rb +21 -0
  148. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/accent.rb +19 -5
  149. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/argument_properties/argument_size.rb +20 -0
  150. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/argument_properties.rb +21 -0
  151. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/bar.rb +24 -4
  152. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/box.rb +14 -5
  153. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/delimeter.rb +27 -6
  154. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/fraction.rb +15 -5
  155. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/function.rb +14 -5
  156. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/group_char.rb +23 -7
  157. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/index.rb +16 -6
  158. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/limit.rb +20 -6
  159. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/math_run/math_run_properties.rb +25 -0
  160. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/math_run.rb +25 -0
  161. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/matrix/matrix_row.rb +4 -3
  162. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/matrix.rb +36 -3
  163. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties/nary_grow.rb +20 -0
  164. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties/nary_limit_location.rb +20 -0
  165. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties.rb +26 -0
  166. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary.rb +31 -0
  167. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/pre_sub_superscript.rb +27 -0
  168. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/radical.rb +19 -5
  169. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula.rb +52 -183
  170. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/docx_paragraph_run_helpers.rb +89 -0
  171. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/object/ole_object.rb +23 -0
  172. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/object.rb +21 -0
  173. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape.rb +24 -17
  174. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/text_fill.rb +7 -6
  175. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/text_outline.rb +15 -10
  176. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run.rb +43 -245
  177. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/frame_properties.rb +19 -20
  178. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/indents.rb +24 -65
  179. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/inserted.rb +41 -0
  180. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/style_parametres.rb +31 -0
  181. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph.rb +146 -172
  182. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb +45 -26
  183. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/multilevel_type.rb +20 -0
  184. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/level_justification.rb +20 -0
  185. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/level_text.rb +20 -0
  186. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/numbering_format.rb +20 -0
  187. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/start.rb +20 -0
  188. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/suffix.rb +31 -0
  189. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level.rb +65 -0
  190. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering.rb +42 -0
  191. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/numbering_definition/abstract_numbering_id.rb +20 -0
  192. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/numbering_definition.rb +31 -0
  193. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb +45 -0
  194. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/columns/column.rb +15 -4
  195. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/columns.rb +24 -13
  196. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/document_grid.rb +6 -12
  197. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/footnote_properties.rb +32 -0
  198. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/note.rb +8 -9
  199. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_margins.rb +31 -24
  200. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_properties.rb +61 -64
  201. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_size.rb +56 -0
  202. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults/paragraph_properties_default.rb +20 -0
  203. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults/run_properties_default.rb +20 -0
  204. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults.rb +26 -0
  205. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles.rb +19 -0
  206. data/lib/ooxml_parser/docx_parser/docx_data/document_structure.rb +49 -54
  207. data/lib/ooxml_parser/docx_parser/docx_parser.rb +2 -1
  208. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_comment.rb +1 -1
  209. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_helpers.rb +13 -0
  210. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme/theme_color.rb +15 -12
  211. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme.rb +1 -1
  212. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background/background_properties/stretch.rb +11 -0
  213. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background/background_properties.rb +21 -0
  214. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background.rb +19 -6
  215. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/graphic_frame/graphic_frame.rb +27 -16
  216. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/presentation_alternate_content.rb +13 -9
  217. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/shape/non_visual_shape_properties/hyperlinks/hyperlink_for_hover.rb +11 -8
  218. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/shapes_grouping.rb +19 -15
  219. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/animation_effect/animation_effect.rb +17 -12
  220. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/behavior/behavior.rb +15 -14
  221. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/behavior/target_element.rb +18 -15
  222. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/set_time_node.rb +9 -11
  223. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing/condition.rb +16 -13
  224. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing.rb +23 -15
  225. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node.rb +21 -19
  226. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing.rb +15 -11
  227. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide_helper.rb +52 -0
  228. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition/sound_action/sound.rb +13 -7
  229. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition/sound_action.rb +11 -9
  230. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition.rb +13 -15
  231. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition_properties/transition_properties.rb +9 -14
  232. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide.rb +30 -67
  233. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide_size.rb +11 -8
  234. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation.rb +6 -3
  235. data/lib/ooxml_parser/pptx_parser/pptx_parser.rb +1 -1
  236. data/lib/ooxml_parser/version.rb +1 -1
  237. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/chartsheet.rb +28 -0
  238. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills/fill/pattern_fill.rb +33 -0
  239. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills/fill.rb +25 -0
  240. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills.rb +38 -0
  241. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fonts/font.rb +35 -0
  242. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fonts.rb +38 -0
  243. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/number_formats/number_format.rb +24 -0
  244. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/number_formats.rb +47 -0
  245. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet.rb +36 -0
  246. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/workbook_helpers.rb +11 -0
  247. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment.rb +11 -10
  248. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments.rb +8 -10
  249. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_format_properties.rb +12 -12
  250. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_view/pane.rb +12 -10
  251. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_view.rb +29 -8
  252. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/x14_table.rb +24 -0
  253. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension.rb +21 -0
  254. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list.rb +30 -0
  255. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part.rb +37 -0
  256. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_column_properties.rb +29 -10
  257. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position_parameters.rb +25 -0
  258. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing.rb +23 -29
  259. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style/alignment.rb +15 -12
  260. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style.rb +70 -37
  261. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell.rb +16 -12
  262. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row.rb +31 -9
  263. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet.rb +34 -12
  264. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb +20 -9
  265. data/lib/ooxml_parser/xlsx_parser/xlsx_parser.rb +1 -1
  266. data/lib/ooxml_parser.rb +0 -1
  267. metadata +122 -58
  268. data/lib/ooxml_parser/common_parser/common_data/alingment.rb +0 -56
  269. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_style/office_2007_chart_style.rb +0 -17
  270. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_style/office_2010_chart_style.rb +0 -17
  271. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/group/docx_group_element.rb +0 -10
  272. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/group/docx_grouped_drawing.rb +0 -34
  273. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/gradient_color/docx_gradient_color.rb +0 -30
  274. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/gradient_color/docx_single_gradient_color.rb +0 -6
  275. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/solid_color/docx_solid_color.rb +0 -10
  276. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/docx_custom_geometry/docx_shape_line_element.rb +0 -10
  277. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/line/line_end/line_size.rb +0 -20
  278. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_style/docx_shape_style.rb +0 -5
  279. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/common_non_visual_properties.rb +0 -25
  280. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/non_visual_properties.rb +0 -19
  281. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/non_visual_shape_properties.rb +0 -20
  282. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape.rb +0 -28
  283. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_placeholder.rb +0 -18
  284. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_properties/ooxml_shift.rb +0 -15
  285. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_properties/transform_effect.rb +0 -28
  286. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_properties.rb +0 -13
  287. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/text_body/ooxml_text_box.rb +0 -26
  288. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/text_body/text_body.rb +0 -23
  289. data/lib/ooxml_parser/common_parser/common_data/colors/image/stretching/fill_rectangle.rb +0 -22
  290. data/lib/ooxml_parser/common_parser/common_data/colors/image/stretching.rb +0 -12
  291. data/lib/ooxml_parser/common_parser/common_data/colors/image_properties.rb +0 -16
  292. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/strikeout.rb +0 -16
  293. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering/numbering_properties/numbering_level.rb +0 -25
  294. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering/numbering_properties.rb +0 -69
  295. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering.rb +0 -18
  296. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_cell_margin.rb +0 -20
  297. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_elements.rb +0 -21
  298. data/lib/ooxml_parser/common_parser/common_data/table/properties/whole_table/line_join.rb +0 -19
  299. data/lib/ooxml_parser/common_parser/common_data/table/properties/whole_table/table_cell_style.rb +0 -20
  300. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/operator.rb +0 -13
  301. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style/bookmark.rb +0 -10
  302. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style/paragraph_tab.rb +0 -19
  303. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style/style_parametres.rb +0 -35
  304. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style.rb +0 -56
  305. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/image.rb +0 -15
  306. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/size.rb +0 -84
  307. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/shapes_grouping/grouping_properties.rb +0 -16
  308. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment/excel_comment_character/excel_comment_character_properties.rb +0 -27
  309. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment/excel_comment_character.rb +0 -25
  310. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position/xlsx_drawing_position_parameters.rb +0 -22
  311. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position.rb +0 -22
  312. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_shape_grouping.rb +0 -37
  313. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style/foreground_color.rb +0 -25
  314. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style/ooxml_font.rb +0 -36
  315. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_table.rb +0 -30
@@ -0,0 +1,20 @@
1
+ module OoxmlParser
2
+ # Class for parsing `settings.xml` file
3
+ class DocumentSettings < OOXMLDocumentObject
4
+ # @return [OoxmlSize] size of default tab
5
+ attr_accessor :default_tab_stop
6
+
7
+ # Parse Settings object
8
+ # @return [DocumentSettings] result of parsing
9
+ def parse
10
+ doc = Nokogiri::XML(File.open(OOXMLDocumentObject.path_to_folder + 'word/settings.xml'))
11
+ doc.xpath('w:settings/*').each do |node_child|
12
+ case node_child.name
13
+ when 'defaultTabStop'
14
+ @default_tab_stop = OoxmlSize.new.parse(node_child)
15
+ end
16
+ end
17
+ self
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ module OoxmlParser
2
+ # method to help to work with DocumentStructure
3
+ module DocumentStructureHelpers
4
+ # @return [True, false] if structure contain any user data
5
+ def with_data?
6
+ return true if @elements.length > 1
7
+ @elements.each do |current_element|
8
+ return true if current_element.with_data?
9
+ end
10
+ @notes.each do |current_note|
11
+ current_note.elements.each do |note_element|
12
+ return true if note_element.with_data?
13
+ end
14
+ end
15
+ false
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,37 @@
1
+ module OoxmlParser
2
+ # Helper methods for working with Style List
3
+ module DocumentStyleHelper
4
+ # Return document style by its name
5
+ # @param name [String] name of style
6
+ # @return [DocumentStyle, nil]
7
+ def document_style_by_name(name)
8
+ root_object.document_styles.each do |style|
9
+ return style if style.name == name
10
+ end
11
+ nil
12
+ end
13
+
14
+ # Return document style by its id
15
+ # @param id [String] id of style
16
+ # @return [DocumentStyle, nil]
17
+ def document_style_by_id(id)
18
+ root_object.document_styles.each do |style|
19
+ return style if style.style_id == id
20
+ end
21
+ nil
22
+ end
23
+
24
+ # Return document style which is based on
25
+ # @return [DocumentStyle]
26
+ def based_on_style
27
+ document_style_by_id(@based_on)
28
+ end
29
+
30
+ # Check if style exists in current document
31
+ # @param name [String] name of style
32
+ # @return [True, False]
33
+ def style_exist?(name)
34
+ !document_style_by_name(name).nil?
35
+ end
36
+ end
37
+ end
@@ -1,6 +1,9 @@
1
+ require_relative 'document_style/document_style_helper'
1
2
  module OoxmlParser
2
3
  # Class for describing styles containing in +styles.xml+
3
4
  class DocumentStyle < OOXMLDocumentObject
5
+ include TableStylePropertiesHelper
6
+ include DocumentStyleHelper
4
7
  # @return [Symbol] Type of style (+:paragraph+ or +:table+)
5
8
  attr_accessor :type
6
9
  # @return [FixNum] number of style
@@ -15,54 +18,80 @@ module OoxmlParser
15
18
  attr_accessor :run_properties
16
19
  # @return [DocxParagraph] run properties
17
20
  attr_accessor :paragraph_properties
21
+ # @return [TableProperties] properties of table
22
+ attr_accessor :table_properties
23
+ # @return [Array, TableStyleProperties] list of table style properties
24
+ attr_accessor :table_style_properties_list
25
+ # @return [TableRowProperties] properties of table row
26
+ attr_accessor :table_row_properties
27
+ # @return [CellProperties] properties of table cell
28
+ attr_accessor :table_cell_properties
18
29
  # @return [True, False] Latent Style Primary Style Setting
19
30
  # Used to determine if current style is visible in style list in editors
20
31
  # According to http://www.wordarticles.com/Articles/WordStyles/LatentStyles.php
21
32
  attr_accessor :q_format
22
33
  alias visible? q_format
23
34
 
24
- def initialize
35
+ def initialize(parent: nil)
25
36
  @q_format = false
37
+ @table_style_properties_list = []
38
+ @parent = parent
39
+ end
40
+
41
+ def to_s
42
+ "Table style properties list: #{@table_style_properties_list.join(',')}"
43
+ end
44
+
45
+ def inspect
46
+ to_s
26
47
  end
27
48
 
28
49
  # Parse single document style
29
50
  # @return [DocumentStyle]
30
- def self.parse(node)
31
- document_style = DocumentStyle.new
51
+ def parse(node)
32
52
  node.attributes.each do |key, value|
33
53
  case key
34
54
  when 'type'
35
- document_style.type = value.value.to_sym
55
+ @type = value.value.to_sym
36
56
  when 'styleId'
37
- document_style.style_id = value.value.to_i
57
+ @style_id = value.value
38
58
  end
39
59
  end
40
60
  node.xpath('*').each do |subnode|
41
61
  case subnode.name
42
62
  when 'name'
43
- document_style.name = subnode.attribute('val').value
63
+ @name = subnode.attribute('val').value
44
64
  when 'basedOn'
45
- document_style.based_on = subnode.attribute('val').value.to_i
65
+ @based_on = subnode.attribute('val').value
46
66
  when 'next'
47
- document_style.next_style = subnode.attribute('val').value.to_i
67
+ @next_style = subnode.attribute('val').value
48
68
  when 'rPr'
49
- document_style.run_properties = DocxParagraphRun.parse(subnode)
69
+ @run_properties = DocxParagraphRun.new.parse_properties(subnode)
50
70
  when 'pPr'
51
- document_style.paragraph_properties = DocxParagraph.parse_paragraph_style(subnode)
71
+ @paragraph_properties = DocxParagraph.new(parent: self).parse_paragraph_style(subnode)
72
+ when 'tblPr'
73
+ @table_properties = TableProperties.new(parent: self).parse(subnode)
74
+ when 'trPr'
75
+ @table_row_properties = TableRowProperties.new(parent: self).parse(subnode)
76
+ when 'tcPr'
77
+ @table_cell_properties = CellProperties.new(parent: self).parse(subnode)
78
+ when 'tblStylePr'
79
+ @table_style_properties_list << TableStyleProperties.new(parent: self).parse(subnode)
52
80
  when 'qFormat'
53
- document_style.q_format = true
81
+ @q_format = true
54
82
  end
55
83
  end
56
- document_style
84
+ fill_empty_table_styles
85
+ self
57
86
  end
58
87
 
59
88
  # Parse all document style list
60
89
  # @return [Array, DocumentStyle]
61
- def self.parse_list
90
+ def self.parse_list(parent)
62
91
  styles_array = []
63
92
  doc = Nokogiri::XML(File.open(OOXMLDocumentObject.path_to_folder + 'word/styles.xml'))
64
93
  doc.search('//w:style').each do |style|
65
- styles_array << DocumentStyle.parse(style)
94
+ styles_array << DocumentStyle.new(parent: parent).parse(style)
66
95
  end
67
96
  styles_array
68
97
  end
@@ -0,0 +1,21 @@
1
+ module OoxmlParser
2
+ # Class for parsing `w:bookmarkStart`, `w:bookmarkEnd` tags
3
+ class Bookmark < OOXMLDocumentObject
4
+ attr_accessor :id, :name
5
+
6
+ # Parse Bookmark object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [Bookmark] result of parsing
9
+ def parse(node)
10
+ node.attributes.each do |key, value|
11
+ case key
12
+ when 'id'
13
+ @id = value.value
14
+ when 'name'
15
+ @name = value.value
16
+ end
17
+ end
18
+ self
19
+ end
20
+ end
21
+ end
@@ -1,11 +1,25 @@
1
- # Accent Data
2
1
  module OoxmlParser
3
- class Accent
2
+ # Class for `acc` data
3
+ class Accent < OOXMLDocumentObject
4
4
  attr_accessor :symbol, :element
5
5
 
6
- def initialize(symbol = nil, element = nil)
7
- @symbol = symbol
8
- @element = element
6
+ # Parse Accent object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [Accent] result of parsing
9
+ def parse(node)
10
+ node.xpath('*').each do |node_child|
11
+ case node_child.name
12
+ when 'accPr'
13
+ node_child.xpath('*').each do |node_child_child|
14
+ case node_child_child.name
15
+ when 'chr'
16
+ @symbol = node_child_child.attribute('val').value
17
+ end
18
+ end
19
+ end
20
+ end
21
+ @element = DocxFormula.new(parent: self).parse(node)
22
+ self
9
23
  end
10
24
  end
11
25
  end
@@ -0,0 +1,20 @@
1
+ module OoxmlParser
2
+ # Class for parsing `m:argSz` object
3
+ class ArgumentSize < OOXMLDocumentObject
4
+ # @return [String] value of size
5
+ attr_accessor :value
6
+
7
+ # Parse ArgumentSize
8
+ # @param [Nokogiri::XML:Node] node with ArgumentSize
9
+ # @return [ArgumentSize] result of parsing
10
+ def parse(node)
11
+ node.attributes.each do |key, value|
12
+ case key
13
+ when 'val'
14
+ @value = value.value.to_f
15
+ end
16
+ end
17
+ self
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'argument_properties/argument_size'
2
+ module OoxmlParser
3
+ # Class for parsing `m:argPr` object
4
+ class ArgumentProperties < OOXMLDocumentObject
5
+ # @return [ArgumentSize] size of argument
6
+ attr_accessor :argument_size
7
+
8
+ # Parse ArgumentProperties
9
+ # @param [Nokogiri::XML:Node] node with ArgumentProperties
10
+ # @return [ArgumentProperties] result of parsing
11
+ def parse(node)
12
+ node.xpath('*').each do |argument_child|
13
+ case argument_child.name
14
+ when 'argSz'
15
+ @argument_size = ArgumentSize.new(parent: self).parse(argument_child)
16
+ end
17
+ end
18
+ self
19
+ end
20
+ end
21
+ end
@@ -1,10 +1,30 @@
1
1
  module OoxmlParser
2
- class Bar
2
+ # Class for `bar` data
3
+ class Bar < OOXMLDocumentObject
3
4
  attr_accessor :position, :element
4
5
 
5
- def initialize(position = 'bottom', element = nil)
6
- @position = position
7
- @element = element
6
+ def initialize(parent: nil)
7
+ @position = :bottom
8
+ @parent = parent
9
+ end
10
+
11
+ # Parse Bar object
12
+ # @param node [Nokogiri::XML:Element] node to parse
13
+ # @return [Bar] result of parsing
14
+ def parse(node)
15
+ node.xpath('*').each do |node_child|
16
+ case node_child.name
17
+ when 'barPr'
18
+ node_child.xpath('*').each do |node_child_child|
19
+ case node_child_child.name
20
+ when 'pos'
21
+ @position = node_child_child.attribute('val').value.to_sym
22
+ end
23
+ end
24
+ end
25
+ end
26
+ @element = DocxFormula.new(parent: self).parse(node)
27
+ self
8
28
  end
9
29
  end
10
30
  end
@@ -1,11 +1,20 @@
1
- # Box data
2
1
  module OoxmlParser
3
- class Box
2
+ # Class for `box`, `borderBox` data
3
+ class Box < OOXMLDocumentObject
4
4
  attr_accessor :borders, :element
5
5
 
6
- def initialize(borders = false, element = nil)
7
- @borders = borders
8
- @element = element
6
+ def initialize(parent: nil)
7
+ @borders = false
8
+ @parent = parent
9
+ end
10
+
11
+ # Parse Box object
12
+ # @param node [Nokogiri::XML:Element] node to parse
13
+ # @return [Box] result of parsing
14
+ def parse(node)
15
+ @borders = true if node.name == 'borderBox'
16
+ @element = MathRun.new(parent: self).parse(node)
17
+ self
9
18
  end
10
19
  end
11
20
  end
@@ -1,12 +1,33 @@
1
- # Delimiter Data
2
1
  module OoxmlParser
3
- class Delimiter
2
+ # Class for `d` data
3
+ class Delimiter < OOXMLDocumentObject
4
4
  attr_accessor :begin_character, :value, :end_character
5
5
 
6
- def initialize(begin_character = '(', value = nil, end_character = ')')
7
- @begin_character = begin_character
8
- @value = value
9
- @end_character = end_character
6
+ def initialize(parent: nil)
7
+ @begin_character = '('
8
+ @end_character = ')'
9
+ @parent = parent
10
+ end
11
+
12
+ # Parse Delimiter object
13
+ # @param node [Nokogiri::XML:Element] node to parse
14
+ # @return [Delimiter] result of parsing
15
+ def parse(node)
16
+ node.xpath('*').each do |node_child|
17
+ case node_child.name
18
+ when 'dPr'
19
+ node_child.xpath('*').each do |node_child_child|
20
+ case node_child_child.name
21
+ when 'begChr'
22
+ @begin_character = node_child_child.attribute('val').value
23
+ when 'endChr'
24
+ @end_character = node_child_child.attribute('val').value
25
+ end
26
+ end
27
+ end
28
+ end
29
+ @value = DocxFormula.new(parent: self).parse(node)
30
+ self
10
31
  end
11
32
  end
12
33
  end
@@ -1,11 +1,21 @@
1
- # Fraction Data
2
1
  module OoxmlParser
3
- class Fraction
2
+ # Class for 'f' data
3
+ class Fraction < OOXMLDocumentObject
4
4
  attr_accessor :numerator, :denominator
5
5
 
6
- def initialize(numerator = nil, denominator = nil)
7
- @numerator = numerator
8
- @denominator = denominator
6
+ # Parse Fraction object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [Fraction] result of parsing
9
+ def parse(node)
10
+ node.xpath('*').each do |node_child|
11
+ case node_child.name
12
+ when 'num'
13
+ @numerator = DocxFormula.new(parent: self).parse(node_child)
14
+ when 'den'
15
+ @denominator = DocxFormula.new(parent: self).parse(node_child)
16
+ end
17
+ end
18
+ self
9
19
  end
10
20
  end
11
21
  end
@@ -1,11 +1,20 @@
1
- # Function Data
2
1
  module OoxmlParser
3
- class Function
2
+ # Class for `func` data
3
+ class Function < OOXMLDocumentObject
4
4
  attr_accessor :name, :argument
5
5
 
6
- def initialize(name = nil, argument = nil)
7
- @name = name
8
- @argument = argument
6
+ # Parse Function object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [Function] result of parsing
9
+ def parse(node)
10
+ node.xpath('*').each do |node_child|
11
+ case node_child.name
12
+ when 'fName'
13
+ @name = DocxFormula.new(parent: self).parse(node_child)
14
+ end
15
+ end
16
+ @argument = DocxFormula.new(parent: self).parse(node)
17
+ self
9
18
  end
10
19
  end
11
20
  end
@@ -1,13 +1,29 @@
1
- # Group Char Data
2
1
  module OoxmlParser
3
- class GroupChar
2
+ # Class for `groupChr` data
3
+ class GroupChar < OOXMLDocumentObject
4
4
  attr_accessor :symbol, :position, :vertical_align, :element
5
5
 
6
- def initialize(symbol = nil, position = nil, vertical_align = nil, element = nil)
7
- @symbol = symbol
8
- @position = position
9
- @vertical_align = vertical_align
10
- @element = element
6
+ # Parse GroupChar object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [GroupChar] result of parsing
9
+ def parse(node)
10
+ node.xpath('*').each do |node_child|
11
+ case node_child.name
12
+ when 'groupChrPr'
13
+ node_child.xpath('*').each do |node_child_child|
14
+ case node_child_child.name
15
+ when 'chr'
16
+ @symbol = node_child_child.attribute('val').value
17
+ when 'pos'
18
+ @position = node_child_child.attribute('val').value
19
+ when 'vertJc'
20
+ @vertical_align = node_child_child.attribute('val').value
21
+ end
22
+ end
23
+ end
24
+ end
25
+ @element = DocxFormula.new(parent: self).parse(node)
26
+ self
11
27
  end
12
28
  end
13
29
  end
@@ -1,12 +1,22 @@
1
- # Index data
2
1
  module OoxmlParser
3
- class Index
2
+ # Class for 'sSubSup', 'sSup', 'sSub' data
3
+ class Index < OOXMLDocumentObject
4
4
  attr_accessor :value, :top_index, :bottom_index
5
5
 
6
- def initialize(value = nil, bottom_index = nil, top_index = nil)
7
- @value = value
8
- @bottom_index = bottom_index
9
- @top_index = top_index
6
+ # Parse Index object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [Index] result of parsing
9
+ def parse(node)
10
+ node.xpath('*').each do |node_child|
11
+ case node_child.name
12
+ when 'sup'
13
+ @top_index = DocxFormula.new(parent: self).parse(node_child)
14
+ when 'sub'
15
+ @bottom_index = DocxFormula.new(parent: self).parse(node_child)
16
+ end
17
+ end
18
+ @value = DocxFormula.new(parent: self).parse(node)
19
+ self
10
20
  end
11
21
  end
12
22
  end
@@ -1,12 +1,26 @@
1
- # Limit Data
2
1
  module OoxmlParser
3
- class Limit
2
+ # Class for `limUpp`, `limLow` data
3
+ class Limit < OOXMLDocumentObject
4
4
  attr_accessor :type, :element, :limit
5
5
 
6
- def initialize(type = nil, element = nil, limit = nil)
7
- @type = type
8
- @element = element
9
- @limit = limit
6
+ def initialize(parent: nil)
7
+ @type = :upper
8
+ @parent = parent
9
+ end
10
+
11
+ # Parse Accent object
12
+ # @param node [Nokogiri::XML:Element] node to parse
13
+ # @return [Accent] result of parsing
14
+ def parse(node)
15
+ @type = :lower if node.name == 'limLow'
16
+ node.xpath('*').each do |node_child|
17
+ case node_child.name
18
+ when 'lim'
19
+ @limit = DocxFormula.new(parent: self).parse(node_child)
20
+ end
21
+ end
22
+ @element = DocxFormula.new(parent: self).parse(node)
23
+ self
10
24
  end
11
25
  end
12
26
  end
@@ -0,0 +1,25 @@
1
+ module OoxmlParser
2
+ # Class for parsing `m:rPr` object
3
+ class MathRunProperties < OOXMLDocumentObject
4
+ # @return [True, False] is run with break
5
+ attr_accessor :break
6
+
7
+ def initialize(parent: nil)
8
+ @break = false
9
+ @parent = parent
10
+ end
11
+
12
+ # Parse MathRunProperties
13
+ # @param [Nokogiri::XML:Node] node with MathRunProperties
14
+ # @return [MathRunProperties] result of parsing
15
+ def parse(node)
16
+ node.xpath('*').each do |math_run_child|
17
+ case math_run_child.name
18
+ when 'brk'
19
+ @break = true
20
+ end
21
+ end
22
+ self
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'math_run/math_run_properties'
2
+ module OoxmlParser
3
+ # Class for parsing `m:r` object
4
+ class MathRun < OOXMLDocumentObject
5
+ # @return [MathRunProperties] properties of run
6
+ attr_accessor :properties
7
+ # @return [String] text of formula
8
+ attr_accessor :text
9
+
10
+ # Parse MathRun
11
+ # @param [Nokogiri::XML:Node] node with MathRun
12
+ # @return [MathRun] result of parsing
13
+ def parse(node)
14
+ node.xpath('*').each do |math_run_child|
15
+ case math_run_child.name
16
+ when 'rPr'
17
+ @properties = MathRunProperties.new(parent: self).parse(math_run_child)
18
+ when 't'
19
+ @text = math_run_child.text
20
+ end
21
+ end
22
+ self
23
+ end
24
+ end
25
+ end
@@ -1,10 +1,11 @@
1
- # Matrix Row data
2
1
  module OoxmlParser
3
- class MatrixRow
2
+ # Class for 'm:mr' data
3
+ class MatrixRow < OOXMLDocumentObject
4
4
  attr_accessor :columns
5
5
 
6
- def initialize(columns_count = 1)
6
+ def initialize(columns_count = 1, parent: nil)
7
7
  @columns = Array.new(columns_count)
8
+ @parent = parent
8
9
  end
9
10
  end
10
11
  end
@@ -1,10 +1,43 @@
1
1
  require_relative 'matrix/matrix_row'
2
2
  module OoxmlParser
3
- class Matrix
3
+ # Class for 'm' data
4
+ class Matrix < OOXMLDocumentObject
4
5
  attr_accessor :rows
5
6
 
6
- def initialize(rows = [])
7
- @rows = rows
7
+ def initialize(parent: nil)
8
+ @rows = []
9
+ @parent = parent
10
+ end
11
+
12
+ # Parse Matrix object
13
+ # @param node [Nokogiri::XML:Element] node to parse
14
+ # @return [Matrix] result of parsing
15
+ def parse(node)
16
+ columns_count = 1
17
+ j = 0
18
+ node.xpath('m:mPr').each do |m_pr|
19
+ m_pr.xpath('m:mcs').each do |mcs|
20
+ mcs.xpath('m:mc').each do |mc|
21
+ mc.xpath('m:mcPr').each do |mc_pr|
22
+ mc_pr.xpath('m:count').each do |count|
23
+ columns_count = count.attribute('val').value.to_i
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ node.xpath('m:mr').each do |mr|
31
+ i = 0
32
+ @rows << MatrixRow.new(columns_count, parent: self)
33
+ mr.xpath('m:e').each do |e|
34
+ @rows[j].columns[i] = DocxFormula.new(parent: self).parse(e)
35
+ i += 1
36
+ end
37
+ j += 1
38
+ end
39
+
40
+ self
8
41
  end
9
42
  end
10
43
  end
@@ -0,0 +1,20 @@
1
+ module OoxmlParser
2
+ # Class for parsing `m:grow` object
3
+ class NaryGrow < OOXMLDocumentObject
4
+ # @return [String] value of grow
5
+ attr_accessor :value
6
+
7
+ # Parse NaryGrow
8
+ # @param [Nokogiri::XML:Node] node with NaryGrow
9
+ # @return [NaryGrow] result of parsing
10
+ def parse(node)
11
+ node.attributes.each do |key, value|
12
+ case key
13
+ when 'val'
14
+ @value = value.value
15
+ end
16
+ end
17
+ self
18
+ end
19
+ end
20
+ end