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
@@ -1,34 +1,41 @@
1
1
  require_relative 'chart_axis_title'
2
- # Chart Axis
3
2
  module OoxmlParser
3
+ # Parsing Chart axis tags 'catAx', 'valAx'
4
4
  class ChartAxis < OOXMLDocumentObject
5
5
  attr_accessor :title, :display, :position, :major_grid_lines, :minor_grid_lines
6
6
 
7
- def initialize(title = ChartAxisTitle.new, display = true, major_grid_lines = false, minor_grid_lines = false)
7
+ def initialize(title = ChartAxisTitle.new,
8
+ display = true,
9
+ major_grid_lines = false,
10
+ minor_grid_lines = false,
11
+ parent: nil)
8
12
  @title = title
9
13
  @display = display
10
14
  @minor_grid_lines = minor_grid_lines
11
15
  @major_grid_lines = major_grid_lines
16
+ @parent = parent
12
17
  end
13
18
 
14
- def self.parse(axis_node)
15
- axis = ChartAxis.new
16
- axis_node.xpath('*').each do |axis_node_child|
17
- case axis_node_child.name
19
+ # Parse ChartAxis object
20
+ # @param node [Nokogiri::XML:Element] node to parse
21
+ # @return [ChartAxis] result of parsing
22
+ def parse(node)
23
+ node.xpath('*').each do |node_child|
24
+ case node_child.name
18
25
  when 'delete'
19
- axis.display = false if axis_node_child.attribute('val').value == '1'
26
+ @display = false if node_child.attribute('val').value == '1'
20
27
  when 'title'
21
- axis.title = ChartAxisTitle.parse(axis_node_child)
28
+ @title = ChartAxisTitle.new(parent: self).parse(node_child)
22
29
  when 'majorGridlines'
23
- axis.major_grid_lines = true
30
+ @major_grid_lines = true
24
31
  when 'minorGridlines'
25
- axis.minor_grid_lines = true
32
+ @minor_grid_lines = true
26
33
  when 'axPos'
27
- axis.position = Alignment.parse(axis_node_child.attribute('val'))
34
+ @position = value_to_symbol(node_child.attribute('val'))
28
35
  end
29
36
  end
30
- axis.display = false if axis.title.nil?
31
- axis
37
+ @display = false if @title.nil?
38
+ self
32
39
  end
33
40
  end
34
41
  end
@@ -1,38 +1,39 @@
1
- # Chart Axis Title
2
1
  module OoxmlParser
2
+ # Chart Axis Title `title` node
3
3
  class ChartAxisTitle < OOXMLDocumentObject
4
4
  attr_accessor :layout, :overlay, :elements
5
5
 
6
- def initialize(layout = nil, overlay = nil, elements = [])
7
- @layout = layout
8
- @overlay = overlay
9
- @elements = elements
6
+ def initialize(parent: nil)
7
+ @elements = []
8
+ @parent = parent
10
9
  end
11
10
 
12
11
  def nil?
13
12
  @layout.nil? && @overlay.nil? && @elements.empty?
14
13
  end
15
14
 
16
- def self.parse(axis_title_node)
17
- title = ChartAxisTitle.new
18
- axis_title_node.xpath('*').each do |title_node_child|
19
- case title_node_child.name
15
+ # Parse ChartAxisTitle object
16
+ # @param node [Nokogiri::XML:Element] node to parse
17
+ # @return [ChartAxisTitle] result of parsing
18
+ def parse(node)
19
+ node.xpath('*').each do |node_child|
20
+ case node_child.name
20
21
  when 'tx'
21
- title_node_child.xpath('c:rich/*').each do |rich_node_child|
22
+ node_child.xpath('c:rich/*').each do |rich_node_child|
22
23
  case rich_node_child.name
23
24
  when 'p'
24
25
  Presentation.current_font_style = FontStyle.new(true) # Default font style for chart title always bold
25
- title.elements << Paragraph.parse(rich_node_child)
26
+ @elements << Paragraph.new(parent: self).parse(rich_node_child)
26
27
  Presentation.current_font_style = FontStyle.new
27
28
  end
28
29
  end
29
30
  when 'layout'
30
- title.layout = OOXMLDocumentObject.option_enabled?(title_node_child)
31
+ @layout = option_enabled?(node_child)
31
32
  when 'overlay'
32
- title.overlay = OOXMLDocumentObject.option_enabled?(title_node_child)
33
+ @overlay = option_enabled?(node_child)
33
34
  end
34
35
  end
35
- title
36
+ self
36
37
  end
37
38
  end
38
39
  end
@@ -1,23 +1,26 @@
1
- # Cell Range of Chart
2
1
  module OoxmlParser
3
- class ChartCellsRange
2
+ # Cell Range of Chart
3
+ class ChartCellsRange < OOXMLDocumentObject
4
4
  attr_accessor :list, :points
5
5
 
6
- def initialize(list = '', points = [])
7
- @list = list
8
- @points = points
6
+ def initialize(parent: nil)
7
+ @list = ''
8
+ @points = []
9
+ @parent = parent
9
10
  end
10
11
 
11
- def self.parse(num_ref_node)
12
- chart_range = ChartCellsRange.new
13
- chart_range.list = num_ref_node.xpath('c:f')[0].text.split('!').first
14
- coordinates = Coordinates.parser_coordinates_range(num_ref_node.xpath('c:f')[0].text) # .split('!')[1].gsub('$', ''))
15
- num_ref_node.xpath('c:numCache/c:pt').each_with_index do |point_node, index|
12
+ # Parse ChartCellsRange object
13
+ # @param node [Nokogiri::XML:Element] node to parse
14
+ # @return [ChartCellsRange] result of parsing
15
+ def parse(node)
16
+ @list = node.xpath('c:f')[0].text.split('!').first
17
+ coordinates = Coordinates.parser_coordinates_range(node.xpath('c:f')[0].text) # .split('!')[1].gsub('$', ''))
18
+ node.xpath('c:numCache/c:pt').each_with_index do |point_node, index|
16
19
  point = ChartPoint.new(coordinates[index])
17
20
  point.value = point_node.xpath('c:v').first.text.to_f unless point_node.xpath('c:v').first.nil?
18
- chart_range.points << point
21
+ @points << point
19
22
  end
20
- chart_range
23
+ self
21
24
  end
22
25
  end
23
26
  end
@@ -1,11 +1,14 @@
1
- # Legend of Chart
2
1
  module OoxmlParser
3
- class ChartLegend
2
+ # Legend of Chart `legend` tag
3
+ class ChartLegend < OOXMLDocumentObject
4
4
  attr_accessor :position, :overlay
5
5
 
6
- def initialize(position = :right, overlay = false)
6
+ def initialize(position = :right,
7
+ overlay = false,
8
+ parent: nil)
7
9
  @position = position
8
10
  @overlay = overlay
11
+ @parent = parent
9
12
  end
10
13
 
11
14
  # Return combined data from @position and @overlay
@@ -17,17 +20,19 @@ module OoxmlParser
17
20
  @position
18
21
  end
19
22
 
20
- def self.parse(legend_node)
21
- legend = ChartLegend.new
22
- legend_node.xpath('*').each do |legend_node_child|
23
- case legend_node_child.name
23
+ # Parse ChartLegend object
24
+ # @param node [Nokogiri::XML:Element] node to parse
25
+ # @return [ChartLegend] result of parsing
26
+ def parse(node)
27
+ node.xpath('*').each do |child_node|
28
+ case child_node.name
24
29
  when 'legendPos'
25
- legend.position = Alignment.parse(legend_node_child.attribute('val'))
30
+ @position = value_to_symbol(child_node.attribute('val'))
26
31
  when 'overlay'
27
- legend.overlay = true if legend_node_child.attribute('val').value.to_s == '1'
32
+ @overlay = true if child_node.attribute('val').value.to_s == '1'
28
33
  end
29
34
  end
30
- legend
35
+ self
31
36
  end
32
37
  end
33
38
  end
@@ -1,26 +1,37 @@
1
- # Chart Label Properties
2
1
  module OoxmlParser
3
- class DisplayLabelsProperties
2
+ # Chart Label Properties, parse tag `dLbls`
3
+ class DisplayLabelsProperties < OOXMLDocumentObject
4
4
  attr_accessor :position, :show_legend_key, :show_values, :show_x_axis_name, :show_y_axis_name
5
+ # @return [True, False] is category name shown
6
+ attr_accessor :show_category_name
7
+ # @return [True, False] is series name shown
8
+ attr_accessor :show_series_name
5
9
 
6
- def initialize(show_legend_key = false, show_values = false)
10
+ def initialize(show_legend_key = false, show_values = false, parent: nil)
7
11
  @show_legend_key = show_legend_key
8
12
  @show_values = show_values
13
+ @parent = parent
9
14
  end
10
15
 
11
- def self.parse(display_labels_node)
12
- display_labels_properties = DisplayLabelsProperties.new
13
- display_labels_node.xpath('*').each do |display_label_property_node|
14
- case display_label_property_node.name
16
+ # Parse DisplayLabelsProperties object
17
+ # @param node [Nokogiri::XML:Element] node to parse
18
+ # @return [DisplayLabelsProperties] result of parsing
19
+ def parse(node)
20
+ node.xpath('*').each do |node_child|
21
+ case node_child.name
15
22
  when 'dLblPos'
16
- display_labels_properties.position = Alignment.parse(display_label_property_node.attribute('val'))
23
+ @position = value_to_symbol(node_child.attribute('val'))
17
24
  when 'showLegendKey'
18
- display_labels_properties.show_legend_key = true if display_label_property_node.attribute('val').value == '1'
25
+ @show_legend_key = true if node_child.attribute('val').value == '1'
19
26
  when 'showVal'
20
- display_labels_properties.show_values = true if display_label_property_node.attribute('val').value == '1'
27
+ @show_values = true if node_child.attribute('val').value == '1'
28
+ when 'showCatName'
29
+ @show_category_name = option_enabled?(node_child)
30
+ when 'showSerName'
31
+ @show_series_name = option_enabled?(node_child)
21
32
  end
22
33
  end
23
- display_labels_properties
34
+ self
24
35
  end
25
36
  end
26
37
  end
@@ -0,0 +1,24 @@
1
+ module OoxmlParser
2
+ # Class for parsing `wp:docP` tags
3
+ class DocProperties < OOXMLDocumentObject
4
+ # @return [String] title property
5
+ attr_accessor :title
6
+ # @return [String] description property
7
+ attr_accessor :description
8
+
9
+ # Parse DocProperties object
10
+ # @param node [Nokogiri::XML:Element] node to parse
11
+ # @return [DocProperties] result of parsing
12
+ def parse(node)
13
+ node.attributes.each do |key, value|
14
+ case key
15
+ when 'title'
16
+ @title = value.value
17
+ when 'descr'
18
+ @description = value.value
19
+ end
20
+ end
21
+ self
22
+ end
23
+ end
24
+ end
@@ -1,49 +1,63 @@
1
+ require_relative 'docx_drawing/doc_properties'
1
2
  require_relative 'drawing_properties/docx_drawing_properties'
3
+ require_relative 'drawing_properties/size_relative_horizontal'
4
+ require_relative 'drawing_properties/size_relative_vertical'
2
5
  require_relative 'graphic/docx_graphic'
3
- # Docx Drawing Data
4
6
  module OoxmlParser
5
- class DocxDrawing
7
+ # Class for parsing `graphic` tags
8
+ class DocxDrawing < OOXMLDocumentObject
6
9
  attr_accessor :type, :properties, :graphic
10
+ # @return [DocProperties] doc properties
11
+ attr_accessor :doc_properties
7
12
 
8
13
  alias picture graphic
9
14
 
10
- def initialize(properties = DocxDrawingProperties.new)
15
+ def initialize(properties = DocxDrawingProperties.new, parent: nil)
11
16
  @properties = properties
17
+ @parent = parent
12
18
  end
13
19
 
14
- def self.parse(drawing_node)
15
- drawing = DocxDrawing.new
16
- drawing_node.xpath('*').each do |drawing_node_child|
17
- case drawing_node_child.name
20
+ # Parse DocxDrawing
21
+ # @param [Nokogiri::XML:Node] node with NumberingProperties
22
+ # @return [DocxDrawing] result of parsing
23
+ def parse(node)
24
+ node.xpath('*').each do |node_child|
25
+ case node_child.name
18
26
  when 'anchor'
19
- drawing.type = :flow
27
+ @type = :flow
20
28
  when 'inline'
21
- drawing.type = :inline
29
+ @type = :inline
22
30
  end
23
- drawing.properties.distance_from_text = DocxDrawingDistanceFromText.parse(drawing_node_child)
24
- drawing.properties.wrap = DocxWrapDrawing.parse(drawing_node_child)
25
- drawing_node_child.attributes.each do |key, value|
31
+ @properties.distance_from_text = DocxDrawingDistanceFromText.new(parent: self).parse(node_child)
32
+ @properties.wrap = DocxWrapDrawing.new(parent: self).parse(node_child)
33
+ node_child.attributes.each do |key, value|
26
34
  case key
27
35
  when 'relativeHeight'
28
- drawing.properties.relative_height = value.value.to_i
36
+ @properties.relative_height = value.value.to_i
29
37
  end
30
38
  end
31
- drawing_node_child.xpath('*').each do |content_node_child|
39
+ node_child.xpath('*').each do |content_node_child|
32
40
  case content_node_child.name
33
41
  when 'simplePos'
34
- drawing.properties.simple_position = OOXMLCoordinates.parse(content_node_child)
42
+ @properties.simple_position = OOXMLCoordinates.parse(content_node_child)
35
43
  when 'extent'
36
- drawing.properties.object_size = OOXMLCoordinates.parse(content_node_child, x_attr: 'cx', y_attr: 'cy')
44
+ @properties.object_size = OOXMLCoordinates.parse(content_node_child, x_attr: 'cx', y_attr: 'cy', unit: :emu)
37
45
  when 'graphic'
38
- drawing.graphic = DocxGraphic.parse(content_node_child)
46
+ @graphic = DocxGraphic.new(parent: self).parse(content_node_child)
39
47
  when 'positionV'
40
- drawing.properties.vertical_position = DocxDrawingPosition.parse(content_node_child)
48
+ @properties.vertical_position = DocxDrawingPosition.new(parent: self).parse(content_node_child)
41
49
  when 'positionH'
42
- drawing.properties.horizontal_position = DocxDrawingPosition.parse(content_node_child)
50
+ @properties.horizontal_position = DocxDrawingPosition.new(parent: self).parse(content_node_child)
51
+ when 'sizeRelH'
52
+ @properties.size_relative_horizontal = SizeRelativeHorizontal.new(parent: self).parse(content_node_child)
53
+ when 'sizeRelV'
54
+ @properties.size_relative_vertical = SizeRelativeVertical.new(parent: self).parse(content_node_child)
55
+ when 'docPr'
56
+ @doc_properties = DocProperties.new(parent: self).parse(content_node_child)
43
57
  end
44
58
  end
45
59
  end
46
- drawing
60
+ self
47
61
  end
48
62
  end
49
63
  end
@@ -1,23 +1,22 @@
1
- # Docx Drawing Distance From Text
2
1
  module OoxmlParser
3
- class DocxDrawingDistanceFromText
2
+ # Docx Drawing Distance From Text
3
+ class DocxDrawingDistanceFromText < OOXMLDocumentObject
4
4
  attr_accessor :top, :bottom, :left, :right
5
5
 
6
- def self.parse(distance_node)
7
- distance_from_text = DocxDrawingDistanceFromText.new
8
- distance_node.attributes.each do |key, value|
6
+ def parse(node)
7
+ node.attributes.each do |key, value|
9
8
  case key
10
9
  when 'distT'
11
- distance_from_text.top = (value.value.to_f / 360_000.0).round(2)
10
+ @top = OoxmlSize.new(value.value.to_f, :emu)
12
11
  when 'distB'
13
- distance_from_text.bottom = (value.value.to_f / 360_000.0).round(2)
12
+ @bottom = OoxmlSize.new(value.value.to_f, :emu)
14
13
  when 'distL'
15
- distance_from_text.left = (value.value.to_f / 360_000.0).round(2)
14
+ @left = OoxmlSize.new(value.value.to_f, :emu)
16
15
  when 'distR'
17
- distance_from_text.right = (value.value.to_f / 360_000.0).round(2)
16
+ @right = OoxmlSize.new(value.value.to_f, :emu)
18
17
  end
19
18
  end
20
- distance_from_text
19
+ self
21
20
  end
22
21
  end
23
22
  end
@@ -1,35 +1,28 @@
1
- # Docx Drawing Position
2
1
  module OoxmlParser
3
- class DocxDrawingPosition
2
+ # Docx Drawing Position
3
+ class DocxDrawingPosition < OOXMLDocumentObject
4
4
  attr_accessor :relative_from, :offset, :align
5
5
 
6
- def self.parse(drawing_position_node)
7
- position = DocxDrawingPosition.new
8
- position.relative_from = case drawing_position_node.attribute('relativeFrom').value
9
- when 'leftMargin'
10
- :left_margin
11
- when 'rightMargin'
12
- :right_margin
13
- when 'bottomMargin'
14
- :bottom_margin
15
- when 'topMargin'
16
- :top_margin
17
- when 'insideMargin'
18
- :inside_margin
19
- when 'outsideMargin'
20
- :outside_margin
21
- else
22
- drawing_position_node.attribute('relativeFrom').value.to_sym
23
- end
24
- drawing_position_node.xpath('*').each do |position_node_child|
25
- case position_node_child.name
6
+ # Parse DocxDrawingPosition object
7
+ # @param node [Nokogiri::XML:Element] node to parse
8
+ # @return [DocxDrawingPosition] result of parsing
9
+ def parse(node)
10
+ node.attributes.each do |key, value|
11
+ case key
12
+ when 'relativeFrom'
13
+ @relative_from = value_to_symbol(value)
14
+ end
15
+ end
16
+
17
+ node.xpath('*').each do |node_child|
18
+ case node_child.name
26
19
  when 'posOffset', 'pctPosHOffset', 'pctPosVOffset'
27
- position.offset = (position_node_child.text.to_f / 360_000.0).round(3)
20
+ @offset = OoxmlSize.new(node_child.text.to_f, :emu)
28
21
  when 'align'
29
- position.align = position_node_child.text.to_sym
22
+ @align = node_child.text.to_sym
30
23
  end
31
24
  end
32
- position
25
+ self
33
26
  end
34
27
  end
35
28
  end
@@ -1,11 +1,14 @@
1
1
  require_relative 'ooxml_coordinates'
2
+ require_relative 'ooxml_size'
2
3
  require_relative 'docx_drawing_distance_from_text'
3
4
  require_relative 'docx_drawing_position'
4
5
  require_relative 'docx_wrap_drawing'
5
6
  # Docx Drawing Properties
6
7
  module OoxmlParser
7
- class DocxDrawingProperties
8
+ class DocxDrawingProperties < OOXMLDocumentObject
8
9
  attr_accessor :distance_from_text, :simple_position, :wrap, :object_size, :vertical_position, :horizontal_position,
9
10
  :relative_height
11
+ attr_accessor :size_relative_horizontal
12
+ attr_accessor :size_relative_vertical
10
13
  end
11
14
  end
@@ -1,39 +1,42 @@
1
- # Docx Wrap Drawing
2
1
  module OoxmlParser
3
- class DocxWrapDrawing
2
+ # Docx Wrap Drawing
3
+ class DocxWrapDrawing < OOXMLDocumentObject
4
4
  attr_accessor :wrap_text, :distance_from_text
5
5
 
6
- def initialize(wrap_text = :none)
7
- @wrap_text = wrap_text
6
+ def initialize(parent: nil)
7
+ @wrap_text = :none
8
+ @parent = parent
8
9
  end
9
10
 
10
- def self.parse(drawing_node)
11
- wrap = DocxWrapDrawing.new
12
- unless drawing_node.attribute('behindDoc').nil?
13
- wrap.wrap_text = :behind if drawing_node.attribute('behindDoc').value == '1'
14
- wrap.wrap_text = :infront if drawing_node.attribute('behindDoc').value == '0'
11
+ # Parse DocxWrapDrawing object
12
+ # @param node [Nokogiri::XML:Element] node to parse
13
+ # @return [DocxWrapDrawing] result of parsing
14
+ def parse(node)
15
+ unless node.attribute('behindDoc').nil?
16
+ @wrap_text = :behind if node.attribute('behindDoc').value == '1'
17
+ @wrap_text = :infront if node.attribute('behindDoc').value == '0'
15
18
  end
16
- drawing_node.xpath('*').each do |wrap_node|
17
- case wrap_node.name
19
+ node.xpath('*').each do |node_child|
20
+ case node_child.name
18
21
  when 'wrapSquare'
19
- wrap.wrap_text = :square
20
- wrap.distance_from_text = DocxDrawingDistanceFromText.parse(wrap_node)
22
+ @wrap_text = :square
23
+ @distance_from_text = DocxDrawingDistanceFromText.new(parent: self).parse(node_child)
21
24
  break
22
25
  when 'wrapTight'
23
- wrap.wrap_text = :tight
24
- wrap.distance_from_text = DocxDrawingDistanceFromText.parse(wrap_node)
26
+ @wrap_text = :tight
27
+ @distance_from_text = DocxDrawingDistanceFromText.new(parent: self).parse(node_child)
25
28
  break
26
29
  when 'wrapThrough'
27
- wrap.wrap_text = :through
28
- wrap.distance_from_text = DocxDrawingDistanceFromText.parse(wrap_node)
30
+ @wrap_text = :through
31
+ @distance_from_text = DocxDrawingDistanceFromText.new(parent: self).parse(node_child)
29
32
  break
30
33
  when 'wrapTopAndBottom'
31
- wrap.wrap_text = :topbottom
32
- wrap.distance_from_text = DocxDrawingDistanceFromText.parse(wrap_node)
34
+ @wrap_text = :topbottom
35
+ @distance_from_text = DocxDrawingDistanceFromText.new(parent: self).parse(node_child)
33
36
  break
34
37
  end
35
38
  end
36
- wrap
39
+ self
37
40
  end
38
41
  end
39
42
  end
@@ -4,8 +4,16 @@ module OoxmlParser
4
4
  attr_accessor :x, :y
5
5
 
6
6
  def initialize(x, y)
7
- @x = x
8
- @y = y
7
+ @x = if x.is_a?(OoxmlSize)
8
+ x
9
+ else
10
+ OoxmlSize.new(x)
11
+ end
12
+ @y = if y.is_a?(OoxmlSize)
13
+ y
14
+ else
15
+ OoxmlSize.new(y)
16
+ end
9
17
  end
10
18
 
11
19
  def to_s
@@ -23,10 +31,12 @@ module OoxmlParser
23
31
  # @param position_node [Nokogiri::XML:Element] node to parse
24
32
  # @param x_attr [String] name of x attribute
25
33
  # @param y_attr [String] name of y attribute
26
- # @param delimiter [Float] delimiter to devise values
34
+ # @param unit [Symbol] unit in which data is stored
27
35
  # @return [OOXMLCoordinates] result of parsing
28
- def self.parse(position_node, x_attr: 'x', y_attr: 'y', delimiter: OoxmlParser.configuration.units_delimiter)
29
- OOXMLCoordinates.new((position_node.attribute(x_attr).value.to_f / delimiter).round(3), (position_node.attribute(y_attr).value.to_f / delimiter).round(3))
36
+ def self.parse(position_node, x_attr: 'x', y_attr: 'y', unit: :dxa)
37
+ return if position_node.attribute(x_attr).nil? || position_node.attribute(y_attr).nil?
38
+ OOXMLCoordinates.new(OoxmlSize.new(position_node.attribute(x_attr).value.to_f, unit),
39
+ OoxmlSize.new(position_node.attribute(y_attr).value.to_f, unit))
30
40
  end
31
41
  end
32
42
  end