ooxml_parser 0.4.1 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (352) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ooxml_parser.rb +4 -0
  3. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content.rb +2 -0
  4. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/chart_style.rb +2 -0
  5. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice.rb +3 -0
  6. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice/math_text.rb +3 -0
  7. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice/math_text/math_paragraph.rb +3 -0
  8. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart.rb +39 -4
  9. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/pivot_formats.rb +33 -0
  10. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/pivot_formats/pivot_format.rb +26 -0
  11. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/plot_area.rb +67 -0
  12. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/plot_area/common_chart_data.rb +31 -0
  13. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series.rb +22 -9
  14. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text.rb +5 -5
  15. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/{string_reference.rb → number_string_reference.rb} +9 -7
  16. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/{string_cache.rb → number_string_cache.rb} +11 -6
  17. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point.rb +9 -2
  18. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point/text_value.rb +2 -0
  19. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/x_y_values.rb +22 -0
  20. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/view_3d.rb +2 -0
  21. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis.rb +3 -1
  22. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis/scaling.rb +2 -0
  23. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis_title.rb +7 -4
  24. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_cells_range.rb +4 -0
  25. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_legend.rb +3 -0
  26. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_point.rb +3 -1
  27. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/display_labels_properties.rb +6 -0
  28. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/docx_drawing.rb +2 -0
  29. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/docx_drawing/doc_properties.rb +2 -0
  30. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_distance_from_text.rb +5 -0
  31. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_position.rb +2 -0
  32. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_properties.rb +3 -1
  33. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_wrap_drawing.rb +2 -0
  34. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/ooxml_coordinates.rb +12 -8
  35. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/ooxml_size.rb +26 -14
  36. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative/picture_dimension.rb +2 -0
  37. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative_horizontal.rb +2 -0
  38. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative_vertical.rb +2 -0
  39. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb +3 -1
  40. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip.rb +4 -0
  41. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip/file_reference.rb +8 -0
  42. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_picture.rb +2 -2
  43. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape.rb +7 -0
  44. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties.rb +3 -0
  45. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/common_non_visual_properties.rb +3 -1
  46. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/non_visual_properties.rb +2 -0
  47. 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 +2 -0
  48. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/ooxml_text_box.rb +3 -3
  49. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style.rb +42 -0
  50. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/effect_reference.rb +35 -0
  51. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/fill_reference.rb +35 -0
  52. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/font_reference.rb +35 -0
  53. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/line_reference.rb +35 -0
  54. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/text_body.rb +2 -0
  55. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_body_properties/ooxml_shape_body_properties.rb +2 -0
  56. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_body_properties/ooxml_shape_body_properties/preset_text_warp.rb +2 -0
  57. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/docx_color_scheme.rb +5 -2
  58. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/docx_pattern_fill.rb +4 -2
  59. 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 +2 -0
  60. 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 +2 -2
  61. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/ooxml_custom_geometry.rb +3 -1
  62. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_color.rb +3 -1
  63. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_line.rb +6 -2
  64. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties.rb +4 -4
  65. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill.rb +2 -0
  66. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill/blip.rb +2 -0
  67. 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 +2 -0
  68. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry.rb +2 -0
  69. 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 +2 -0
  70. 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 +2 -0
  71. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/text_box.rb +12 -11
  72. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_size.rb +11 -5
  73. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/line/line_end.rb +3 -0
  74. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/group/old_docx_group.rb +3 -1
  75. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/group/old_docx_group_element.rb +3 -1
  76. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/group/old_docx_group_properties.rb +3 -1
  77. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/old_docx_picture.rb +3 -3
  78. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape.rb +2 -0
  79. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape_fill.rb +2 -0
  80. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape_properties.rb +3 -3
  81. data/lib/ooxml_parser/common_parser/common_data/borders_properties.rb +25 -9
  82. data/lib/ooxml_parser/common_parser/common_data/color.rb +119 -71
  83. data/lib/ooxml_parser/common_parser/common_data/color/color_helper.rb +25 -21
  84. data/lib/ooxml_parser/common_parser/common_data/color/ooxml_color.rb +12 -3
  85. data/lib/ooxml_parser/common_parser/common_data/colors/color_alpha_channel.rb +4 -1
  86. data/lib/ooxml_parser/common_parser/common_data/colors/color_properties.rb +2 -0
  87. data/lib/ooxml_parser/common_parser/common_data/colors/hsl_color.rb +23 -8
  88. data/lib/ooxml_parser/common_parser/common_data/colors/image_fill.rb +3 -0
  89. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill.rb +6 -1
  90. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color.rb +3 -1
  91. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/gradient_stop.rb +5 -3
  92. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/linear_gradient.rb +2 -0
  93. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/presentation_pattern.rb +4 -2
  94. data/lib/ooxml_parser/common_parser/common_data/colors/scheme_color.rb +6 -1
  95. data/lib/ooxml_parser/common_parser/common_data/colors/theme_colors.rb +18 -14
  96. data/lib/ooxml_parser/common_parser/common_data/colors/tile.rb +2 -0
  97. data/lib/ooxml_parser/common_parser/common_data/content_types.rb +38 -0
  98. data/lib/ooxml_parser/common_parser/common_data/content_types/content_type_default.rb +26 -0
  99. data/lib/ooxml_parser/common_parser/common_data/content_types/content_type_override.rb +26 -0
  100. data/lib/ooxml_parser/common_parser/common_data/coordinates.rb +18 -6
  101. data/lib/ooxml_parser/common_parser/common_data/font_style.rb +3 -2
  102. data/lib/ooxml_parser/common_parser/common_data/hyperlink.rb +4 -2
  103. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object.rb +42 -3
  104. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object/ooxml_document_object_helper.rb +107 -116
  105. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object/ooxml_object_attribute_helper.rb +31 -0
  106. data/lib/ooxml_parser/common_parser/common_data/paragraph.rb +2 -0
  107. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_properties.rb +3 -0
  108. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run.rb +27 -0
  109. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb +9 -14
  110. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/outline.rb +2 -0
  111. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/position.rb +2 -0
  112. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/run_spacing.rb +2 -0
  113. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/run_style.rb +2 -0
  114. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/shade.rb +9 -0
  115. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/size.rb +2 -0
  116. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/text.rb +2 -0
  117. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering_properties.rb +4 -0
  118. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_borders.rb +4 -0
  119. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_spacing.rb +5 -3
  120. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/spacing.rb +25 -35
  121. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/spacing/line_spacing.rb +33 -0
  122. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs.rb +2 -0
  123. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs/tab.rb +3 -0
  124. data/lib/ooxml_parser/common_parser/common_data/paragraph/text_field.rb +2 -0
  125. data/lib/ooxml_parser/common_parser/common_data/relationships.rb +24 -19
  126. data/lib/ooxml_parser/common_parser/common_data/relationships/relationship.rb +2 -0
  127. data/lib/ooxml_parser/common_parser/common_data/table.rb +5 -0
  128. data/lib/ooxml_parser/common_parser/common_data/table/margins/paragraph_margins.rb +6 -8
  129. data/lib/ooxml_parser/common_parser/common_data/table/margins/table_margins.rb +10 -0
  130. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_element.rb +3 -1
  131. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_layout.rb +2 -0
  132. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_look.rb +2 -0
  133. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_position.rb +10 -2
  134. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style.rb +19 -17
  135. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_column_band_size.rb +2 -0
  136. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_properties.rb +3 -0
  137. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_properties/table_style_properties_helper.rb +8 -5
  138. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_row_band_size.rb +3 -1
  139. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell.rb +4 -0
  140. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell_properties.rb +11 -11
  141. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/grid_span.rb +35 -0
  142. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/border.rb +2 -0
  143. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/borders.rb +27 -39
  144. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/table_cell_line.rb +2 -0
  145. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/table_cell_line/line_join.rb +4 -4
  146. data/lib/ooxml_parser/common_parser/common_data/table/row/row.rb +5 -2
  147. data/lib/ooxml_parser/common_parser/common_data/table/row/row/table_row_properties.rb +2 -0
  148. data/lib/ooxml_parser/common_parser/common_data/table/row/row/table_row_properties/table_row_height.rb +2 -0
  149. data/lib/ooxml_parser/common_parser/common_data/table/table_grid.rb +5 -0
  150. data/lib/ooxml_parser/common_parser/common_data/table/table_grid/grid_column.rb +3 -1
  151. data/lib/ooxml_parser/common_parser/common_data/table/table_properties.rb +26 -4
  152. data/lib/ooxml_parser/common_parser/common_data/table/table_properties/table_borders.rb +2 -0
  153. data/lib/ooxml_parser/common_parser/common_data/underline.rb +6 -0
  154. data/lib/ooxml_parser/common_parser/common_data/valued_child.rb +2 -0
  155. data/lib/ooxml_parser/common_parser/common_document_structure.rb +17 -0
  156. data/lib/ooxml_parser/common_parser/parser.rb +6 -2
  157. data/lib/ooxml_parser/configuration.rb +3 -0
  158. data/lib/ooxml_parser/docx_parser/docx_data/document_structure.rb +99 -40
  159. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comments.rb +36 -0
  160. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comments/comment.rb +37 -0
  161. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comments_extended.rb +4 -1
  162. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comments_extended/comment_extended.rb +2 -0
  163. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_background.rb +2 -0
  164. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_properties.rb +3 -1
  165. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_settings.rb +6 -1
  166. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_structure_helpers.rb +2 -1
  167. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_style.rb +11 -12
  168. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_style/document_style_helper.rb +2 -0
  169. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph.rb +93 -82
  170. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/bookmark_end.rb +22 -0
  171. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/bookmark_start.rb +26 -0
  172. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/comment_range_end.rb +22 -0
  173. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/comment_range_start.rb +27 -0
  174. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula.rb +3 -0
  175. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/accent.rb +2 -0
  176. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/argument_properties.rb +2 -0
  177. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/argument_properties/argument_size.rb +2 -0
  178. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/bar.rb +2 -0
  179. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/box.rb +2 -0
  180. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/delimeter.rb +2 -0
  181. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/fraction.rb +2 -0
  182. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/function.rb +2 -0
  183. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/group_char.rb +2 -0
  184. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/index.rb +2 -0
  185. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/limit.rb +4 -2
  186. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/math_run.rb +2 -0
  187. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/math_run/math_run_properties.rb +2 -0
  188. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/matrix.rb +2 -0
  189. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/matrix/matrix_row.rb +2 -0
  190. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary.rb +2 -0
  191. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties.rb +2 -0
  192. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties/nary_grow.rb +2 -0
  193. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties/nary_limit_location.rb +2 -0
  194. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/pre_sub_superscript.rb +5 -0
  195. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/radical.rb +4 -2
  196. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_helper.rb +11 -6
  197. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run.rb +30 -23
  198. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/docx_paragraph_run_helpers.rb +15 -4
  199. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/object.rb +2 -0
  200. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/object/ole_object.rb +2 -0
  201. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape.rb +39 -8
  202. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape/shape_properties.rb +3 -0
  203. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape/shape_properties/shape_margins.rb +3 -0
  204. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape/shape_properties/shape_size.rb +3 -0
  205. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape/shape_properties/stroke.rb +3 -0
  206. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/text_fill.rb +2 -0
  207. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/text_outline.rb +2 -0
  208. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/field_simple.rb +41 -0
  209. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/frame_properties.rb +6 -0
  210. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/indents.rb +5 -0
  211. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/inserted.rb +2 -0
  212. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/sdt/sdt_content.rb +2 -0
  213. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/sdt/sdt_properties.rb +2 -0
  214. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/structured_document_tag.rb +2 -0
  215. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/style_parametres.rb +3 -1
  216. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb +4 -3
  217. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb +12 -1
  218. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering.rb +2 -0
  219. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/multilevel_type.rb +2 -0
  220. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level.rb +3 -2
  221. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/level_justification.rb +2 -0
  222. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/level_text.rb +2 -0
  223. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/numbering_format.rb +2 -0
  224. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/suffix.rb +2 -0
  225. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/numbering_definition.rb +4 -3
  226. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/columns.rb +7 -2
  227. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/columns/column.rb +2 -0
  228. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/document_grid.rb +2 -0
  229. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/footnote_properties.rb +2 -0
  230. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/note.rb +16 -14
  231. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_margins.rb +10 -8
  232. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_properties.rb +3 -0
  233. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_size.rb +5 -0
  234. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles.rb +14 -1
  235. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults.rb +2 -0
  236. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults/paragraph_properties_default.rb +2 -0
  237. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults/run_properties_default.rb +2 -0
  238. data/lib/ooxml_parser/docx_parser/docx_parser.rb +6 -0
  239. data/lib/ooxml_parser/helpers/string_helper.rb +3 -1
  240. data/lib/ooxml_parser/name.rb +9 -0
  241. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation.rb +32 -37
  242. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/comment_authors.rb +39 -0
  243. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/comment_authors/comment_author.rb +38 -0
  244. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_comments.rb +33 -0
  245. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_comments/presentation_comment.rb +39 -0
  246. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_helpers.rb +3 -0
  247. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme.rb +12 -3
  248. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme/font_scheme.rb +36 -0
  249. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme/font_scheme/font_collection.rb +31 -0
  250. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme/font_scheme/font_collection/text_font.rb +22 -0
  251. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme/theme_color.rb +14 -8
  252. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide.rb +11 -4
  253. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background.rb +4 -1
  254. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background/background_properties.rb +2 -0
  255. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background/background_properties/stretch.rb +2 -0
  256. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/common_slide_data.rb +2 -0
  257. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/common_slide_data/shape_tree.rb +2 -0
  258. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/connection_shape.rb +2 -0
  259. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/graphic_frame/graphic_frame.rb +5 -2
  260. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/presentation_alternate_content.rb +2 -4
  261. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/presentation_notes.rb +3 -1
  262. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/shape/non_visual_shape_properties/hyperlinks/hyperlink_for_hover.rb +2 -0
  263. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/shapes_grouping.rb +2 -0
  264. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing.rb +2 -0
  265. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/animation_effect/animation_effect.rb +3 -0
  266. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/behavior/behavior.rb +3 -0
  267. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/behavior/target_element.rb +3 -9
  268. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/set_time_node.rb +3 -0
  269. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node.rb +7 -4
  270. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing.rb +6 -3
  271. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing/{condition.rb → codition_list/condition.rb} +3 -9
  272. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing/condition_list.rb +27 -0
  273. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide_helper.rb +19 -1
  274. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition.rb +6 -0
  275. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition/sound_action.rb +5 -5
  276. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition/sound_action/sound.rb +2 -0
  277. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition_properties/transition_properties.rb +8 -2
  278. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition_properties/transition_properties/wheel.rb +22 -0
  279. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide_size.rb +2 -0
  280. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/table_styles.rb +38 -0
  281. data/lib/ooxml_parser/pptx_parser/pptx_parser.rb +7 -1
  282. data/lib/ooxml_parser/version.rb +4 -1
  283. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb +57 -38
  284. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/chartsheet.rb +6 -1
  285. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache.rb +41 -0
  286. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition.rb +37 -0
  287. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition/cache_source.rb +33 -0
  288. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition/cache_source/worksheet_source.rb +26 -0
  289. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/shared_string_table.rb +46 -0
  290. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/shared_string_table/string_index.rb +26 -0
  291. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet.rb +15 -1
  292. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/cell_xfs.rb +37 -0
  293. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/{worksheet/xlsx_row/xlsx_cell → style_sheet/cell_xfs}/cell_style/alignment.rb +2 -0
  294. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/cell_xfs/xf.rb +150 -0
  295. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills.rb +2 -0
  296. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills/fill.rb +4 -0
  297. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills/fill/pattern_fill.rb +2 -0
  298. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fonts.rb +5 -3
  299. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fonts/font.rb +5 -0
  300. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/number_formats.rb +2 -5
  301. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/number_formats/number_format.rb +2 -0
  302. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/xlsx_borders.rb +37 -0
  303. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/xlsx_borders/xlsx_border.rb +34 -0
  304. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/workbook_helpers.rb +3 -0
  305. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet.rb +56 -25
  306. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments.rb +32 -29
  307. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/author.rb +16 -0
  308. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/comment_list.rb +26 -0
  309. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment.rb +10 -0
  310. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/ole_objects.rb +2 -0
  311. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/page_setup.rb +105 -0
  312. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_format_properties.rb +2 -0
  313. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_view.rb +2 -0
  314. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_view/pane.rb +2 -0
  315. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part.rb +8 -1
  316. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/autofilter.rb +2 -0
  317. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/autofilter/filter_column.rb +12 -0
  318. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/autofilter/filter_column/custom_filters.rb +42 -0
  319. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/autofilter/filter_column/custom_filters/custom_filter.rb +26 -0
  320. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list.rb +2 -0
  321. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension.rb +2 -0
  322. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/sparkline_groups.rb +3 -1
  323. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group.rb +2 -0
  324. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/x14_table.rb +2 -0
  325. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/table_columns.rb +42 -0
  326. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/table_columns/table_column.rb +34 -0
  327. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/table_style_info.rb +2 -0
  328. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/worksheet_helper.rb +14 -0
  329. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_column_properties.rb +12 -1
  330. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing.rb +3 -0
  331. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position_parameters.rb +2 -0
  332. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row.rb +3 -1
  333. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell.rb +60 -27
  334. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/formula.rb +39 -0
  335. data/lib/ooxml_parser/xlsx_parser/xlsx_parser.rb +7 -1
  336. metadata +147 -29
  337. data/LICENSE.txt +0 -661
  338. data/README.md +0 -43
  339. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/order.rb +0 -20
  340. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_index.rb +0 -20
  341. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point_count.rb +0 -20
  342. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/gradient_stop/preset_color.rb +0 -20
  343. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/language.rb +0 -20
  344. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell_properties/vertical_merge.rb +0 -20
  345. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/merge.rb +0 -30
  346. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comment.rb +0 -28
  347. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/bookmark.rb +0 -21
  348. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/start.rb +0 -20
  349. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/numbering_definition/abstract_numbering_id.rb +0 -20
  350. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_comment.rb +0 -31
  351. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_comment/presentation_comment_author.rb +0 -26
  352. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style.rb +0 -128
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'comments/comment'
4
+ module OoxmlParser
5
+ # Class for parsing `comments.xml` file
6
+ class Comments < OOXMLDocumentObject
7
+ # @return [Array<Comment>] list of comments
8
+ attr_reader :comments_array
9
+
10
+ def initialize(params = {})
11
+ @comments_array = []
12
+ @parent = params[:parent]
13
+ @file = params.fetch(:file, OOXMLDocumentObject.path_to_folder + 'word/comments.xml')
14
+ end
15
+
16
+ # @return [Comment] accessor
17
+ def [](key)
18
+ @comments_array[key]
19
+ end
20
+
21
+ # Parse CommentsExtended object
22
+ # @return [Comments] result of parsing
23
+ def parse
24
+ return nil unless File.file?(@file)
25
+
26
+ doc = parse_xml(@file)
27
+ doc.xpath('w:comments/*').each do |node_child|
28
+ case node_child.name
29
+ when 'comment'
30
+ @comments_array << Comment.new(parent: self).parse(node_child)
31
+ end
32
+ end
33
+ self
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Comment Data
5
+ class Comment < OOXMLDocumentObject
6
+ # @return [Integer] id of comment
7
+ attr_reader :id
8
+ # @return [Array<DocxParagraph>] array of paragraphs
9
+ attr_reader :paragraphs
10
+
11
+ def initialize(id = nil, paragraphs = [], parent: nil)
12
+ @id = id
13
+ @paragraphs = paragraphs
14
+ @parent = parent
15
+ end
16
+
17
+ # Parse Comment object
18
+ # @param node [Nokogiri::XML:Element] node to parse
19
+ # @return [Comment] result of parsing
20
+ def parse(node)
21
+ node.attributes.each do |key, value|
22
+ case key
23
+ when 'id'
24
+ @id = value.value.to_i
25
+ end
26
+ end
27
+
28
+ node.xpath('*').each do |node_child|
29
+ case node_child.name
30
+ when 'p'
31
+ @paragraphs << DocxParagraph.new.parse(node_child, 0, parent: self)
32
+ end
33
+ end
34
+ self
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'comments_extended/comment_extended'
2
4
  module OoxmlParser
3
5
  # Class for parsing `commentsExtended.xml` file
@@ -17,7 +19,8 @@ module OoxmlParser
17
19
  def parse
18
20
  file_to_parse = OOXMLDocumentObject.path_to_folder + 'word/commentsExtended.xml'
19
21
  return nil unless File.exist?(file_to_parse)
20
- doc = Nokogiri::XML(File.open(file_to_parse))
22
+
23
+ doc = parse_xml(file_to_parse)
21
24
  doc.xpath('w15:commentsEx/*').each do |node_child|
22
25
  case node_child.name
23
26
  when 'commentEx'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OoxmlParser
2
4
  # Class for parsing `w15:commentEx` tag
3
5
  class CommentExtended < OOXMLDocumentObject
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OoxmlParser
2
4
  # Class for describing Document Background `w:background`
3
5
  class DocumentBackground < OOXMLDocumentObject
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OoxmlParser
2
4
  # Document Properties
3
5
  class DocumentProperties < OOXMLDocumentObject
@@ -11,7 +13,7 @@ module OoxmlParser
11
13
  warn "There is no 'docProps/app.xml' in docx. It may be some problem with it"
12
14
  return self
13
15
  end
14
- node = Nokogiri::XML(File.open(properties_file))
16
+ node = parse_xml(properties_file)
15
17
  node.xpath('*').each do |node_child|
16
18
  case node_child.name
17
19
  when 'Properties'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OoxmlParser
2
4
  # Class for parsing `settings.xml` file
3
5
  class DocumentSettings < OOXMLDocumentObject
@@ -7,7 +9,10 @@ module OoxmlParser
7
9
  # Parse Settings object
8
10
  # @return [DocumentSettings] result of parsing
9
11
  def parse
10
- doc = Nokogiri::XML(File.open(OOXMLDocumentObject.path_to_folder + 'word/settings.xml'))
12
+ settings_path = OOXMLDocumentObject.path_to_folder + 'word/settings.xml'
13
+ return nil unless File.exist?(settings_path)
14
+
15
+ doc = parse_xml(settings_path)
11
16
  doc.xpath('w:settings/*').each do |node_child|
12
17
  case node_child.name
13
18
  when 'defaultTabStop'
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OoxmlParser
2
4
  # method to help to work with DocumentStructure
3
5
  module DocumentStructureHelpers
4
6
  # @return [True, false] if structure contain any user data
5
7
  def with_data?
6
- return true if @elements.length > 1
7
8
  @elements.each do |current_element|
8
9
  return true if current_element.with_data?
9
10
  end
@@ -1,9 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'document_style/document_style_helper'
2
4
  module OoxmlParser
3
5
  # Class for describing styles containing in +styles.xml+
4
6
  class DocumentStyle < OOXMLDocumentObject
5
7
  include TableStylePropertiesHelper
6
8
  include DocumentStyleHelper
9
+
10
+ # @return [True, False] is style default
11
+ attr_reader :default
7
12
  # @return [Symbol] Type of style (+:paragraph+ or +:table+)
8
13
  attr_accessor :type
9
14
  # @return [FixNum] number of style
@@ -30,6 +35,7 @@ module OoxmlParser
30
35
  # Used to determine if current style is visible in style list in editors
31
36
  # According to http://www.wordarticles.com/Articles/WordStyles/LatentStyles.php
32
37
  attr_accessor :q_format
38
+
33
39
  alias visible? q_format
34
40
 
35
41
  def initialize(parent: nil)
@@ -38,10 +44,12 @@ module OoxmlParser
38
44
  @parent = parent
39
45
  end
40
46
 
47
+ # @return [String] result of convert of object to string
41
48
  def to_s
42
49
  "Table style properties list: #{@table_style_properties_list.join(',')}"
43
50
  end
44
51
 
52
+ # @return [String] inspect of object for debug means
45
53
  def inspect
46
54
  to_s
47
55
  end
@@ -55,6 +63,8 @@ module OoxmlParser
55
63
  @type = value.value.to_sym
56
64
  when 'styleId'
57
65
  @style_id = value.value
66
+ when 'default'
67
+ @default = attribute_enabled?(value.value)
58
68
  end
59
69
  end
60
70
  node.xpath('*').each do |subnode|
@@ -66,7 +76,7 @@ module OoxmlParser
66
76
  when 'next'
67
77
  @next_style = subnode.attribute('val').value
68
78
  when 'rPr'
69
- @run_properties = DocxParagraphRun.new.parse_properties(subnode)
79
+ @run_properties = DocxParagraphRun.new(parent: self).parse_properties(subnode)
70
80
  when 'pPr'
71
81
  @paragraph_properties = ParagraphProperties.new(parent: self).parse(subnode)
72
82
  when 'tblPr'
@@ -84,16 +94,5 @@ module OoxmlParser
84
94
  fill_empty_table_styles
85
95
  self
86
96
  end
87
-
88
- # Parse all document style list
89
- # @return [Array, DocumentStyle]
90
- def self.parse_list(parent)
91
- styles_array = []
92
- doc = Nokogiri::XML(File.open(OOXMLDocumentObject.path_to_folder + 'word/styles.xml'))
93
- doc.search('//w:style').each do |style|
94
- styles_array << DocumentStyle.new(parent: parent).parse(style)
95
- end
96
- styles_array
97
- end
98
97
  end
99
98
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OoxmlParser
2
4
  # Helper methods for working with Style List
3
5
  module DocumentStyleHelper
@@ -1,7 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # noinspection RubyTooManyInstanceVariablesInspection
2
- require_relative 'docx_paragraph/bookmark'
4
+ require_relative 'docx_paragraph/bookmark_start'
5
+ require_relative 'docx_paragraph/bookmark_end'
6
+ require_relative 'docx_paragraph/comment_range_end'
7
+ require_relative 'docx_paragraph/comment_range_start'
3
8
  require_relative 'docx_paragraph/docx_paragraph_helper'
4
9
  require_relative 'docx_paragraph/docx_paragraph_run'
10
+ require_relative 'docx_paragraph/field_simple'
5
11
  require_relative 'docx_paragraph/indents'
6
12
  require_relative 'docx_paragraph/inserted'
7
13
  require_relative 'docx_paragraph/structured_document_tag'
@@ -9,24 +15,27 @@ require_relative 'docx_paragraph/frame_properties'
9
15
  require_relative 'docx_paragraph/docx_formula'
10
16
  require_relative 'docx_paragraph/style_parametres'
11
17
  module OoxmlParser
18
+ # Class for data of DocxParagraph
12
19
  class DocxParagraph < OOXMLDocumentObject
13
20
  include DocxParagraphHelper
14
21
  attr_accessor :number, :bookmark_start, :bookmark_end, :align, :spacing, :background_color, :ind, :numbering,
15
- :character_style_array, :horizontal_line, :page_break, :kinoku, :borders, :keep_lines,
22
+ :character_style_array, :page_break, :borders, :keep_lines,
16
23
  :contextual_spacing, :sector_properties, :page_numbering, :section_break, :style, :keep_next,
17
- :orphan_control, :frame_properties
24
+ :orphan_control
18
25
  # @return [Hyperlink] hyperlink in paragraph
19
26
  attr_reader :hyperlink
20
27
  # @return [ParagraphProperties] Properties of current paragraph
21
28
  attr_accessor :paragraph_properties
22
29
  # @return [Inserted] data inserted by review
23
30
  attr_accessor :inserted
31
+ # @return [FieldSimple] field simple
32
+ attr_reader :field_simple
24
33
  # @return [Integer] id of paragraph (for comment)
25
34
  attr_accessor :paragraph_id
35
+ # @return [MathParagraph] math paragraph
36
+ attr_reader :math_paragraph
26
37
  # @return [Integer] id of text (for comment)
27
38
  attr_accessor :text_id
28
- # @return [StructuredDocumentTag] structured document tag data
29
- attr_accessor :sdt
30
39
 
31
40
  def initialize(parent: nil)
32
41
  @number = 0
@@ -35,9 +44,7 @@ module OoxmlParser
35
44
  @align = 'left'
36
45
  @spacing = Spacing.new
37
46
  @ind = Indents.new
38
- @kinoku = false
39
47
  @character_style_array = []
40
- @horizontal_line = false
41
48
  @page_break = false
42
49
  @borders = Borders.new
43
50
  @keep_lines = false
@@ -48,6 +55,11 @@ module OoxmlParser
48
55
  @parent = parent
49
56
  end
50
57
 
58
+ alias elements character_style_array
59
+
60
+ # Constructor for copy of object
61
+ # @param source [DocxParagraph] original object
62
+ # @return [void]
51
63
  def initialize_copy(source)
52
64
  super
53
65
  @bookmark_start = source.bookmark_start.clone
@@ -56,18 +68,17 @@ module OoxmlParser
56
68
  @spacing = source.spacing.clone
57
69
  end
58
70
 
71
+ # @return [Array<OOXMLDocumentObject>] array of child objects that contains data
59
72
  def nonempty_runs
60
73
  @character_style_array.select do |cur_run|
61
- if cur_run.is_a?(DocxParagraphRun)
62
- (!cur_run.text.empty? ||
63
- !cur_run.alternate_content.nil? ||
64
- !cur_run.drawing.nil? ||
65
- !cur_run.object.nil? ||
66
- !cur_run.shape.nil? ||
67
- !cur_run.footnote.nil? ||
68
- !cur_run.endnote.nil?
69
- )
70
- elsif cur_run.is_a?(DocxFormula)
74
+ if cur_run.is_a?(DocxParagraphRun) || cur_run.is_a?(ParagraphRun)
75
+ !cur_run.empty?
76
+ elsif cur_run.is_a?(DocxFormula) ||
77
+ cur_run.is_a?(StructuredDocumentTag) ||
78
+ cur_run.is_a?(BookmarkStart) ||
79
+ cur_run.is_a?(BookmarkEnd) ||
80
+ cur_run.is_a?(CommentRangeStart) ||
81
+ cur_run.is_a?(CommentRangeEnd)
71
82
  true
72
83
  end
73
84
  end
@@ -77,16 +88,12 @@ module OoxmlParser
77
88
 
78
89
  # @return [True, false] if structure contain any user data
79
90
  def with_data?
80
- !nonempty_runs.empty?
81
- end
82
-
83
- def remove_empty_runs
84
- nonempty = nonempty_runs
85
- @character_style_array.each do |cur_run|
86
- @character_style_array.delete(cur_run) unless nonempty.include?(cur_run)
87
- end
91
+ !nonempty_runs.empty? || paragraph_properties.section_properties
88
92
  end
89
93
 
94
+ # Compare this object to other
95
+ # @param other [Object] any other object
96
+ # @return [True, False] result of comparision
90
97
  def ==(other)
91
98
  ignored_attributes = %i[@number @parent]
92
99
  all_instance_variables = instance_variables
@@ -97,11 +104,18 @@ module OoxmlParser
97
104
  true
98
105
  end
99
106
 
107
+ # Parse object
108
+ # @param node [Nokogiri::XML:Node] node with DocxParagraph
109
+ # @param par_number [Integer] number of paragraph
110
+ # @param default_character [DocxParagraphRun] style for paragraph
111
+ # @param parent [OOXMLDocumentObject] parent of run
112
+ # @return [DocxParagraph] result of parse
100
113
  def parse(node, par_number = 0, default_character = DocxParagraphRun.new, parent: nil)
101
- @parent = parent
114
+ @parent ||= parent
102
115
  default_character_style = default_character.dup
103
116
  character_styles_array = []
104
117
  custom_character_style = default_character_style.dup
118
+ custom_character_style.parent = self
105
119
  char_number = 0
106
120
  comments = []
107
121
  node.attributes.each do |key, value|
@@ -115,30 +129,20 @@ module OoxmlParser
115
129
  node.xpath('*').each do |node_child|
116
130
  case node_child.name
117
131
  when 'bookmarkStart'
118
- @bookmark_start << Bookmark.new(parent: self).parse(node_child)
132
+ character_styles_array << BookmarkStart.new(parent: self).parse(node_child)
119
133
  when 'bookmarkEnd'
120
- @bookmark_end << Bookmark.new(parent: self).parse(node_child)
134
+ character_styles_array << BookmarkEnd.new(parent: self).parse(node_child)
121
135
  when 'pPr'
122
136
  parse_paragraph_style(node_child, custom_character_style)
123
- node.xpath('w:pict').each do |pict|
124
- pict.xpath('v:rect').each do
125
- @horizontal_line = true
126
- end
127
- end
128
137
  @paragraph_properties = ParagraphProperties.new(parent: self).parse(node_child)
129
138
  when 'commentRangeStart'
130
- comments << node_child.attribute('id').value
139
+ character_styles_array << CommentRangeStart.new(parent: self).parse(node_child)
140
+ when 'commentRangeEnd'
141
+ character_styles_array << CommentRangeEnd.new(parent: self).parse(node_child)
131
142
  when 'fldSimple'
132
- instruction = node_child.attribute('instr').to_s
133
- @page_numbering = true if instruction.include?('PAGE')
134
- node_child.xpath('w:r').each do |r_tag|
135
- character_style = default_character_style.dup
136
- character_style.parse(r_tag, char_number, parent: parent)
137
- character_style.page_number = @page_numbering
138
- character_style.instruction = instruction
139
- character_styles_array << character_style.dup
140
- char_number += 1
141
- end
143
+ @field_simple = FieldSimple.new(parent: self).parse(node_child)
144
+ @page_numbering = true if field_simple.page_numbering?
145
+ character_styles_array += field_simple.runs
142
146
  when 'r'
143
147
  character_style = custom_character_style.dup
144
148
  node_child.xpath('w:instrText').each do |insrt_text|
@@ -147,47 +151,33 @@ module OoxmlParser
147
151
  character_style.parse(node_child, char_number, parent: self)
148
152
  character_style.comments = comments.dup
149
153
  character_styles_array << character_style.dup
150
- character_styles_array.last.shape = character_style.shape unless character_style.shape.nil?
154
+ character_styles_array.last.shape = character_style.shape if character_style.shape
151
155
  char_number += 1
152
156
  when 'hyperlink'
153
157
  @hyperlink = Hyperlink.new(parent: self).parse(node_child)
154
158
  character_style = default_character_style.dup
155
- if !node_child.attribute('id').nil?
159
+ character_style.parent = self
160
+ if node_child.attribute('id')
156
161
  character_style.link = Hyperlink.new(parent: character_style).parse(node_child)
157
- else
158
- character_style.link = node_child.attribute('anchor').value unless node_child.attribute('anchor').nil?
162
+ elsif node_child.attribute('anchor')
163
+ character_style.link = node_child.attribute('anchor').value
159
164
  end
160
165
  node_child.xpath('w:r').each do |r_tag|
161
- character_style.parse(r_tag, char_number, parent: parent)
166
+ character_style.parse(r_tag, char_number, parent: self)
162
167
  character_styles_array << character_style.dup
163
168
  char_number += 1
164
169
  end
165
170
  node_child.xpath('w:fldSimple').each do |simple_field|
166
- instruction = simple_field.attribute('instr').to_s
167
- @page_numbering = true if instruction.include?('PAGE')
168
- simple_field.xpath('w:r').each do |r_tag|
169
- character_style.parse(r_tag, char_number, parent: self)
170
- character_style.page_number = @page_numbering
171
- character_style.instruction = instruction
172
- character_styles_array << character_style.dup
173
- char_number += 1
174
- end
171
+ hyperlink_field_simple = FieldSimple.new(parent: self).parse(simple_field)
172
+ character_styles_array += hyperlink_field_simple.runs
175
173
  end
176
174
  when 'oMathPara'
177
- node_child.xpath('m:oMath').each do |o_math|
178
- character_styles_array << DocxFormula.new(parent: self).parse(o_math)
179
- end
180
- when 'commentRangeEnd'
181
- comments.each_with_index do |comment, index|
182
- if comment == node_child.attribute('id').value
183
- comments.delete_at(index)
184
- break
185
- end
186
- end
175
+ @math_paragraph = MathParagraph.new(parent: self).parse(node_child)
176
+ character_styles_array << math_paragraph.math
187
177
  when 'ins'
188
178
  @inserted = Inserted.new(parent: self).parse(node_child)
189
179
  when 'sdt'
190
- @sdt = StructuredDocumentTag.new(parent: self).parse(node_child)
180
+ character_styles_array << StructuredDocumentTag.new(parent: self).parse(node_child)
191
181
  end
192
182
  end
193
183
  @number = par_number
@@ -197,7 +187,11 @@ module OoxmlParser
197
187
  self
198
188
  end
199
189
 
200
- def parse_paragraph_style(node, default_char_style = DocxParagraphRun.new)
190
+ # Parse style
191
+ # @param node [Nokogiri::XML:Node] node with style
192
+ # @param default_char_style [DocxParagraphRun] style for paragraph
193
+ # @return [DocxParagraph] result of parse
194
+ def parse_paragraph_style(node, default_char_style = DocxParagraphRun.new(parent: self))
201
195
  node.xpath('*').each do |node_child|
202
196
  case node_child.name
203
197
  when 'pageBreakBefore'
@@ -221,13 +215,9 @@ module OoxmlParser
221
215
  @background_color = Color.new(parent: self).parse_hex_string(background_color_string)
222
216
  @background_color.set_style(node_child.attribute('val').value.to_sym) unless node_child.attribute('val').nil?
223
217
  when 'pStyle'
224
- DocxParagraph.parse_paragraph_style_xml(node_child.attribute('val').value, self, default_char_style)
218
+ parse_paragraph_style_xml(node_child.attribute('val').value, default_char_style)
225
219
  when 'ind'
226
220
  @ind = DocumentStructure.default_paragraph_style.ind.dup.parse(node_child)
227
- when 'kinoku'
228
- @kinoku = true
229
- when 'framePr'
230
- @frame_properties = FrameProperties.new(parent: self).parse(node_child)
231
221
  when 'numPr'
232
222
  @numbering = NumberingProperties.new(parent: self).parse(node_child)
233
223
  when 'jc'
@@ -245,8 +235,6 @@ module OoxmlParser
245
235
  @section_break = case @sector_properties.type
246
236
  when 'oddPage'
247
237
  'Odd page'
248
- when 'evenPage'
249
- 'Even page'
250
238
  when 'continuous'
251
239
  'Current Page'
252
240
  else
@@ -258,19 +246,42 @@ module OoxmlParser
258
246
  self
259
247
  end
260
248
 
261
- def self.parse_paragraph_style_xml(id, paragraph_style, character_style)
262
- doc = Nokogiri::XML(File.open(OOXMLDocumentObject.path_to_folder + 'word/styles.xml'))
249
+ # Parse style xml
250
+ # @param id [String] id of style to parse
251
+ # @param character_style [DocxParagraphRun] style to parse
252
+ # @return [void]
253
+ def parse_paragraph_style_xml(id, character_style)
254
+ doc = parse_xml(OOXMLDocumentObject.path_to_folder + 'word/styles.xml')
263
255
  doc.search('//w:style').each do |style|
264
256
  next unless style.attribute('styleId').value == id
257
+
265
258
  style.xpath('w:pPr').each do |p_pr|
266
- paragraph_style.parse_paragraph_style(p_pr, character_style)
267
- paragraph_style.style = StyleParametres.new(parent: paragraph_style).parse(style)
259
+ parse_paragraph_style(p_pr, character_style)
260
+ @style = StyleParametres.new(parent: self).parse(style)
268
261
  end
269
262
  style.xpath('w:rPr').each do |r_pr|
270
- character_style.parse_properties(r_pr, DocumentStructure.default_run_style)
263
+ character_style.parse_properties(r_pr)
271
264
  end
272
265
  break
273
266
  end
274
267
  end
268
+
269
+ extend Gem::Deprecate
270
+ deprecate :page_numbering, 'field_simple.page_numbering?', 2020, 1
271
+
272
+ # @return [OoxmlParser::StructuredDocumentTag] Return first sdt element
273
+ def sdt
274
+ @character_style_array.each do |cur_element|
275
+ return cur_element if cur_element.is_a?(StructuredDocumentTag)
276
+ end
277
+ nil
278
+ end
279
+ deprecate :sdt, 'nonempty_runs[i]', 2020, 1
280
+
281
+ # @return [OoxmlParser::FrameProperties] Return frame properties
282
+ def frame_properties
283
+ paragraph_properties.frame_properties
284
+ end
285
+ deprecate :frame_properties, 'paragraph_properties.frame_properties', 2020, 1
275
286
  end
276
287
  end