ooxml_parser 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -5
  3. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/chart_style.rb +19 -0
  4. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice/math_text/math_paragraph.rb +18 -0
  5. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice/math_text.rb +19 -0
  6. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content/choice.rb +20 -0
  7. data/lib/ooxml_parser/common_parser/common_data/alternate_content/alternate_content.rb +20 -14
  8. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/order.rb +20 -0
  9. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_index.rb +20 -0
  10. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point/text_value.rb +15 -0
  11. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point.rb +31 -0
  12. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache/point_count.rb +20 -0
  13. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference/string_cache.rb +31 -0
  14. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text/string_reference.rb +25 -0
  15. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series/series_text.rb +23 -0
  16. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/series.rb +39 -0
  17. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart/view_3d.rb +32 -0
  18. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart.rb +81 -74
  19. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis.rb +20 -13
  20. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_axis_title.rb +15 -14
  21. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_cells_range.rb +15 -12
  22. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_legend.rb +15 -10
  23. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/display_labels_properties.rb +22 -11
  24. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/docx_drawing/doc_properties.rb +24 -0
  25. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/docx_drawing.rb +34 -20
  26. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_distance_from_text.rb +9 -10
  27. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_position.rb +18 -25
  28. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_drawing_properties.rb +4 -1
  29. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/docx_wrap_drawing.rb +23 -20
  30. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/ooxml_coordinates.rb +15 -5
  31. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/ooxml_size.rb +104 -0
  32. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative/picture_dimension.rb +17 -0
  33. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative_horizontal.rb +31 -0
  34. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/drawing_properties/size_relative_vertical.rb +30 -0
  35. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/docx_graphic.rb +17 -16
  36. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip/file_reference.rb +34 -0
  37. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip.rb +12 -15
  38. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_picture.rb +15 -10
  39. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/common_non_visual_properties.rb +38 -0
  40. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/non_visual_properties/shape_placeholder.rb +21 -0
  41. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties/non_visual_properties.rb +29 -0
  42. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/non_visual_shape_properties.rb +22 -0
  43. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/ooxml_text_box.rb +29 -0
  44. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/text_body.rb +26 -0
  45. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape.rb +27 -10
  46. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_body_properties/ooxml_shape_body_properties/preset_text_warp.rb +7 -4
  47. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_body_properties/ooxml_shape_body_properties.rb +20 -11
  48. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/docx_color_scheme.rb +18 -15
  49. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/docx_pattern_fill.rb +11 -9
  50. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/docx_custom_geometry/docx_shape_line_path/docx_shape_line_element.rb +39 -0
  51. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/docx_custom_geometry/docx_shape_line_path.rb +15 -27
  52. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/ooxml_custom_geometry.rb +13 -9
  53. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_color.rb +20 -23
  54. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_line.rb +27 -22
  55. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill/blip/alpha_mod_fix.rb +19 -0
  56. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill/blip.rb +21 -0
  57. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/blip_fill.rb +24 -0
  58. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry/shape_adjust_value_list/shape_guide.rb +24 -0
  59. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry/shape_adjust_value_list.rb +31 -0
  60. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/preset_geometry.rb +24 -0
  61. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties/text_box.rb +3 -3
  62. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_properties.rb +22 -13
  63. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/docx_shape_size.rb +20 -12
  64. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/line/line_end.rb +9 -8
  65. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/group/old_docx_group.rb +15 -13
  66. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/old_docx_picture.rb +14 -12
  67. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape.rb +15 -12
  68. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape_fill.rb +18 -14
  69. data/lib/ooxml_parser/common_parser/common_data/alternate_content/picture/shape/old_docx_shape_properties.rb +12 -11
  70. data/lib/ooxml_parser/common_parser/common_data/borders_properties.rb +20 -24
  71. data/lib/ooxml_parser/common_parser/common_data/color/color_helper.rb +25 -0
  72. data/lib/ooxml_parser/common_parser/common_data/color.rb +48 -182
  73. data/lib/ooxml_parser/common_parser/common_data/colors/color_properties.rb +15 -10
  74. data/lib/ooxml_parser/common_parser/common_data/colors/hsl_color.rb +1 -63
  75. data/lib/ooxml_parser/common_parser/common_data/colors/image_fill.rb +17 -20
  76. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/gradient_stop/preset_color.rb +20 -0
  77. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/gradient_stop.rb +20 -7
  78. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color/linear_gradient.rb +12 -11
  79. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/gradient_color.rb +17 -17
  80. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill/presentation_pattern.rb +15 -9
  81. data/lib/ooxml_parser/common_parser/common_data/colors/presentation_fill.rb +19 -16
  82. data/lib/ooxml_parser/common_parser/common_data/colors/tile.rb +10 -6
  83. data/lib/ooxml_parser/common_parser/common_data/font_style.rb +1 -61
  84. data/lib/ooxml_parser/common_parser/common_data/hyperlink.rb +33 -26
  85. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object/ooxml_document_object_helper.rb +97 -0
  86. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object.rb +23 -37
  87. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_properties.rb +71 -23
  88. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/language.rb +20 -0
  89. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/outline.rb +11 -7
  90. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/position.rb +20 -0
  91. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/run_spacing.rb +20 -0
  92. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/run_style.rb +25 -0
  93. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/shade.rb +38 -0
  94. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/size.rb +20 -0
  95. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb +92 -40
  96. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run.rb +12 -8
  97. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering_properties.rb +37 -0
  98. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_borders.rb +53 -0
  99. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_spacing.rb +36 -0
  100. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/spacing.rb +6 -6
  101. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tab_list/presentation_tab.rb +26 -0
  102. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tab_list.rb +36 -0
  103. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs/paragraph_tab.rb +26 -0
  104. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs.rb +36 -0
  105. data/lib/ooxml_parser/common_parser/common_data/paragraph/text_field.rb +11 -8
  106. data/lib/ooxml_parser/common_parser/common_data/paragraph.rb +20 -12
  107. data/lib/ooxml_parser/common_parser/common_data/relationships/relationship.rb +13 -7
  108. data/lib/ooxml_parser/common_parser/common_data/relationships.rb +36 -4
  109. data/lib/ooxml_parser/common_parser/common_data/table/margins/paragraph_margins.rb +12 -8
  110. data/lib/ooxml_parser/common_parser/common_data/table/margins/table_margins.rb +18 -19
  111. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_element.rb +9 -8
  112. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_layout.rb +23 -0
  113. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_look.rb +17 -14
  114. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_position.rb +16 -23
  115. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style.rb +21 -40
  116. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_column_band_size.rb +23 -0
  117. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_properties/table_style_properties_helper.rb +42 -0
  118. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_properties.rb +50 -0
  119. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_row_band_size.rb +23 -0
  120. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell.rb +28 -23
  121. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell_properties/vertical_merge.rb +20 -0
  122. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/cell_properties.rb +71 -69
  123. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/merge.rb +18 -10
  124. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/border.rb +19 -17
  125. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/borders.rb +31 -48
  126. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/table_cell_line/line_join.rb +21 -0
  127. data/lib/ooxml_parser/common_parser/common_data/table/row/cell/properties/table_cell_line.rb +25 -19
  128. data/lib/ooxml_parser/common_parser/common_data/table/row/row/table_row_properties/table_row_height.rb +20 -0
  129. data/lib/ooxml_parser/common_parser/common_data/table/row/row/table_row_properties.rb +20 -10
  130. data/lib/ooxml_parser/common_parser/common_data/table/row/row.rb +20 -16
  131. data/lib/ooxml_parser/common_parser/common_data/table/table_grid/grid_column.rb +20 -0
  132. data/lib/ooxml_parser/common_parser/common_data/table/table_grid.rb +27 -3
  133. data/lib/ooxml_parser/common_parser/common_data/table/table_properties/table_borders.rb +20 -13
  134. data/lib/ooxml_parser/common_parser/common_data/table/table_properties.rb +54 -37
  135. data/lib/ooxml_parser/common_parser/common_data/table.rb +23 -17
  136. data/lib/ooxml_parser/common_parser/common_data/underline.rb +13 -10
  137. data/lib/ooxml_parser/common_parser/common_data/valued_child.rb +29 -0
  138. data/lib/ooxml_parser/common_parser/parser.rb +32 -4
  139. data/lib/ooxml_parser/configuration.rb +3 -13
  140. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/comment.rb +1 -1
  141. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_background.rb +16 -16
  142. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_properties.rb +18 -13
  143. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_settings.rb +20 -0
  144. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_structure_helpers.rb +18 -0
  145. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_style/document_style_helper.rb +37 -0
  146. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/document_style.rb +43 -14
  147. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/bookmark.rb +21 -0
  148. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/accent.rb +19 -5
  149. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/argument_properties/argument_size.rb +20 -0
  150. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/argument_properties.rb +21 -0
  151. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/bar.rb +24 -4
  152. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/box.rb +14 -5
  153. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/delimeter.rb +27 -6
  154. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/fraction.rb +15 -5
  155. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/function.rb +14 -5
  156. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/group_char.rb +23 -7
  157. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/index.rb +16 -6
  158. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/limit.rb +20 -6
  159. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/math_run/math_run_properties.rb +25 -0
  160. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/math_run.rb +25 -0
  161. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/matrix/matrix_row.rb +4 -3
  162. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/matrix.rb +36 -3
  163. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties/nary_grow.rb +20 -0
  164. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties/nary_limit_location.rb +20 -0
  165. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary/nary_properties.rb +26 -0
  166. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/nary.rb +31 -0
  167. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/pre_sub_superscript.rb +27 -0
  168. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/radical.rb +19 -5
  169. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula.rb +52 -183
  170. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/docx_paragraph_run_helpers.rb +89 -0
  171. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/object/ole_object.rb +23 -0
  172. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/object.rb +21 -0
  173. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/shape.rb +24 -17
  174. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/text_fill.rb +7 -6
  175. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run/text_outline.rb +15 -10
  176. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_paragraph_run.rb +43 -245
  177. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/frame_properties.rb +19 -20
  178. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/indents.rb +24 -65
  179. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/inserted.rb +41 -0
  180. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/style_parametres.rb +31 -0
  181. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph.rb +146 -172
  182. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb +45 -26
  183. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/multilevel_type.rb +20 -0
  184. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/level_justification.rb +20 -0
  185. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/level_text.rb +20 -0
  186. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/numbering_format.rb +20 -0
  187. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/start.rb +20 -0
  188. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level/suffix.rb +31 -0
  189. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering/numbering_level.rb +65 -0
  190. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/abstract_numbering.rb +42 -0
  191. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/numbering_definition/abstract_numbering_id.rb +20 -0
  192. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering/numbering_definition.rb +31 -0
  193. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/numbering.rb +45 -0
  194. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/columns/column.rb +15 -4
  195. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/columns.rb +24 -13
  196. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/document_grid.rb +6 -12
  197. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/footnote_properties.rb +32 -0
  198. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/note.rb +8 -9
  199. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_margins.rb +31 -24
  200. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_properties.rb +61 -64
  201. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/page_size.rb +56 -0
  202. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults/paragraph_properties_default.rb +20 -0
  203. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults/run_properties_default.rb +20 -0
  204. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles/document_defaults.rb +26 -0
  205. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/styles.rb +19 -0
  206. data/lib/ooxml_parser/docx_parser/docx_data/document_structure.rb +49 -54
  207. data/lib/ooxml_parser/docx_parser/docx_parser.rb +2 -1
  208. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_comment.rb +1 -1
  209. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_helpers.rb +13 -0
  210. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme/theme_color.rb +15 -12
  211. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/presentation_theme.rb +1 -1
  212. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background/background_properties/stretch.rb +11 -0
  213. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background/background_properties.rb +21 -0
  214. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/background.rb +19 -6
  215. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/graphic_frame/graphic_frame.rb +27 -16
  216. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/presentation_alternate_content.rb +13 -9
  217. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/shape/non_visual_shape_properties/hyperlinks/hyperlink_for_hover.rb +11 -8
  218. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/shapes_grouping.rb +19 -15
  219. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/animation_effect/animation_effect.rb +17 -12
  220. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/behavior/behavior.rb +15 -14
  221. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/behavior/target_element.rb +18 -15
  222. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/set_time_node/set_time_node.rb +9 -11
  223. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing/condition.rb +16 -13
  224. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node/common_timing.rb +23 -15
  225. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing/time_node.rb +21 -19
  226. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/timing.rb +15 -11
  227. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide_helper.rb +52 -0
  228. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition/sound_action/sound.rb +13 -7
  229. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition/sound_action.rb +11 -9
  230. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition.rb +13 -15
  231. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/transition/transition_properties/transition_properties.rb +9 -14
  232. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide.rb +30 -67
  233. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide_size.rb +11 -8
  234. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation.rb +6 -3
  235. data/lib/ooxml_parser/pptx_parser/pptx_parser.rb +1 -1
  236. data/lib/ooxml_parser/version.rb +1 -1
  237. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/chartsheet.rb +28 -0
  238. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills/fill/pattern_fill.rb +33 -0
  239. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills/fill.rb +25 -0
  240. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fills.rb +38 -0
  241. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fonts/font.rb +35 -0
  242. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/fonts.rb +38 -0
  243. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/number_formats/number_format.rb +24 -0
  244. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet/number_formats.rb +47 -0
  245. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/style_sheet.rb +36 -0
  246. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/workbook_helpers.rb +11 -0
  247. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment.rb +11 -10
  248. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments.rb +8 -10
  249. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_format_properties.rb +12 -12
  250. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_view/pane.rb +12 -10
  251. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/sheet_view.rb +29 -8
  252. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/x14_table.rb +24 -0
  253. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension.rb +21 -0
  254. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list.rb +30 -0
  255. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part.rb +37 -0
  256. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_column_properties.rb +29 -10
  257. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position_parameters.rb +25 -0
  258. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing.rb +23 -29
  259. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style/alignment.rb +15 -12
  260. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style.rb +70 -37
  261. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell.rb +16 -12
  262. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row.rb +31 -9
  263. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet.rb +34 -12
  264. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb +20 -9
  265. data/lib/ooxml_parser/xlsx_parser/xlsx_parser.rb +1 -1
  266. data/lib/ooxml_parser.rb +0 -1
  267. metadata +122 -58
  268. data/lib/ooxml_parser/common_parser/common_data/alingment.rb +0 -56
  269. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_style/office_2007_chart_style.rb +0 -17
  270. data/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart_style/office_2010_chart_style.rb +0 -17
  271. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/group/docx_group_element.rb +0 -10
  272. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/group/docx_grouped_drawing.rb +0 -34
  273. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/gradient_color/docx_gradient_color.rb +0 -30
  274. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/gradient_color/docx_single_gradient_color.rb +0 -6
  275. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/color/solid_color/docx_solid_color.rb +0 -10
  276. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/custom_geometry/docx_custom_geometry/docx_shape_line_element.rb +0 -10
  277. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_properties/line/line_end/line_size.rb +0 -20
  278. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/shape_style/docx_shape_style.rb +0 -5
  279. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/common_non_visual_properties.rb +0 -25
  280. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/non_visual_properties.rb +0 -19
  281. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/non_visual_shape_properties.rb +0 -20
  282. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape.rb +0 -28
  283. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_placeholder.rb +0 -18
  284. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_properties/ooxml_shift.rb +0 -15
  285. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_properties/transform_effect.rb +0 -28
  286. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/shape_properties.rb +0 -13
  287. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/text_body/ooxml_text_box.rb +0 -26
  288. data/lib/ooxml_parser/common_parser/common_data/alternate_content/shape/text_body/text_body.rb +0 -23
  289. data/lib/ooxml_parser/common_parser/common_data/colors/image/stretching/fill_rectangle.rb +0 -22
  290. data/lib/ooxml_parser/common_parser/common_data/colors/image/stretching.rb +0 -12
  291. data/lib/ooxml_parser/common_parser/common_data/colors/image_properties.rb +0 -16
  292. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/strikeout.rb +0 -16
  293. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering/numbering_properties/numbering_level.rb +0 -25
  294. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering/numbering_properties.rb +0 -69
  295. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering.rb +0 -18
  296. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_cell_margin.rb +0 -20
  297. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_style_elements.rb +0 -21
  298. data/lib/ooxml_parser/common_parser/common_data/table/properties/whole_table/line_join.rb +0 -19
  299. data/lib/ooxml_parser/common_parser/common_data/table/properties/whole_table/table_cell_style.rb +0 -20
  300. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/docx_formula/operator.rb +0 -13
  301. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style/bookmark.rb +0 -10
  302. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style/paragraph_tab.rb +0 -19
  303. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style/style_parametres.rb +0 -35
  304. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/paragraph_style.rb +0 -56
  305. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/image.rb +0 -15
  306. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/page_properties/size.rb +0 -84
  307. data/lib/ooxml_parser/pptx_parser/pptx_data/presentation/slide/slide/shapes_grouping/grouping_properties.rb +0 -16
  308. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment/excel_comment_character/excel_comment_character_properties.rb +0 -27
  309. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/excel_comments/excel_comment/excel_comment_character.rb +0 -25
  310. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position/xlsx_drawing_position_parameters.rb +0 -22
  311. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position.rb +0 -22
  312. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_shape_grouping.rb +0 -37
  313. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style/foreground_color.rb +0 -25
  314. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/cell_style/ooxml_font.rb +0 -36
  315. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_table.rb +0 -30
@@ -0,0 +1,50 @@
1
+ require_relative 'table_style_properties/table_style_properties_helper'
2
+ module OoxmlParser
3
+ # Class for parsing `w:tblStylePr`
4
+ class TableStyleProperties < OOXMLDocumentObject
5
+ # @return [Symbol] type of Table Style Properties
6
+ attr_accessor :type
7
+ # @return [RunProperties] properties of run
8
+ attr_accessor :run_properties
9
+ # @return [CellProperties] properties of table cell
10
+ attr_accessor :table_cell_properties
11
+ # @return [TableProperties] properties of table
12
+ attr_accessor :table_properties
13
+ # @return [ParagraphProperties] properties of paragraph
14
+ attr_accessor :paragraph_properties
15
+ alias cell_properties table_cell_properties
16
+
17
+ def initialize(type: nil, parent: nil)
18
+ @type = type
19
+ @run_properties = nil
20
+ @table_cell_properties = CellProperties.new
21
+ @parent = parent
22
+ end
23
+
24
+ # Parse table style property
25
+ # @param node [Nokogiri::XML::Element] node to parse
26
+ # @return [TableStyleProperties]
27
+ def parse(node)
28
+ node.attributes.each do |key, value|
29
+ case key
30
+ when 'type'
31
+ @type = value.value.to_sym
32
+ end
33
+ end
34
+
35
+ node.xpath('*').each do |node_child|
36
+ case node_child.name
37
+ when 'rPr'
38
+ @run_properties = RunProperties.new(parent: self).parse(node_child)
39
+ when 'tcPr'
40
+ @table_cell_properties = CellProperties.new(parent: self).parse(node_child)
41
+ when 'tblPr'
42
+ @table_properties = TableProperties.new(parent: self).parse(node_child)
43
+ when 'pPr'
44
+ @paragraph_properties = ParagraphProperties.new(parent: self).parse(node_child)
45
+ end
46
+ end
47
+ self
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,23 @@
1
+ module OoxmlParser
2
+ # Class for parsing `w:tblStyleRowBandSize` object
3
+ # When a style specifies the format for a band for
4
+ # rows in a table (a set of contiguous rows), this
5
+ # specifies the number of rows in a band.
6
+ class TableStyleRowBandSize < OOXMLDocumentObject
7
+ # @return [Integer] value of table style column band size
8
+ attr_accessor :value
9
+
10
+ # Parse TableStyleRowBandSize
11
+ # @param [Nokogiri::XML:Node] node with TableStyleRowBandSize
12
+ # @return [TableStyleColumnBandSize] result of parsing
13
+ def parse(node)
14
+ node.attributes.each do |key, value|
15
+ case key
16
+ when 'val'
17
+ @value = value.value.to_i
18
+ end
19
+ end
20
+ self
21
+ end
22
+ end
23
+ end
@@ -1,43 +1,48 @@
1
1
  require_relative 'properties/borders'
2
2
  require_relative 'cell_properties'
3
3
  module OoxmlParser
4
+ # Class for parsing `tc` tags
4
5
  class TableCell < OOXMLDocumentObject
5
6
  attr_accessor :text_body, :properties, :grid_span, :horizontal_merge, :vertical_merge, :elements
6
7
 
7
- def initialize(text_body = nil)
8
- @text_body = text_body
8
+ def initialize(parent: nil)
9
9
  @elements = []
10
+ @parent = parent
10
11
  end
11
12
 
12
13
  alias cell_properties properties
13
14
 
14
- def self.parse(cell_node)
15
- cell = TableCell.new
16
- cell_node.xpath('*').each do |cell_node_child|
17
- case cell_node_child.name
18
- when 'txBody'
19
- cell.text_body = TextBody.parse(cell_node_child)
20
- when 'tcPr'
21
- cell.properties = CellProperties.parse(cell_node_child)
22
- when 'p'
23
- paragraph = DocxParagraph.parse(cell_node_child, 0, DocumentStructure.default_table_paragraph_style, DocumentStructure.default_table_run_style)
24
- cell.elements << paragraph
25
- when 'tbl'
26
- table = Table.parse(cell_node_child)
27
- cell.elements << table
28
- end
29
- end
30
- cell_node.attributes.each do |key, value|
15
+ # Parse TableCell object
16
+ # @param node [Nokogiri::XML:Element] node to parse
17
+ # @return [TableCell] result of parsing
18
+ def parse(node)
19
+ node.attributes.each do |key, value|
31
20
  case key
32
21
  when 'gridSpan'
33
- cell.grid_span = value.value.to_i
22
+ @grid_span = value.value.to_i
34
23
  when 'hMerge'
35
- cell.horizontal_merge = value.value.to_i
24
+ @horizontal_merge = value.value.to_i
36
25
  when 'vMerge'
37
- cell.vertical_merge = value.value.to_i
26
+ @vertical_merge = value.value.to_i
27
+ end
28
+ end
29
+
30
+ node.xpath('*').each do |node_child|
31
+ case node_child.name
32
+ when 'txBody'
33
+ @text_body = TextBody.new(parent: self).parse(node_child)
34
+ when 'tcPr'
35
+ @properties = CellProperties.new(parent: self).parse(node_child)
36
+ when 'p'
37
+ @elements << DocumentStructure.default_table_paragraph_style.copy.parse(node_child,
38
+ 0,
39
+ DocumentStructure.default_table_run_style,
40
+ parent: self)
41
+ when 'tbl'
42
+ @elements << Table.new(parent: self).parse(node_child)
38
43
  end
39
44
  end
40
- cell
45
+ self
41
46
  end
42
47
  end
43
48
  end
@@ -0,0 +1,20 @@
1
+ module OoxmlParser
2
+ # Class for parsing `w:vMerge` object
3
+ class VerticalMerge < OOXMLDocumentObject
4
+ # @return [String] value of vertical merge
5
+ attr_accessor :value
6
+
7
+ # Parse vMerge
8
+ # @param [Nokogiri::XML:Node] node with vMerge
9
+ # @return [vMerge] result of parsing
10
+ def parse(node)
11
+ node.attributes.each do |key, value|
12
+ case key
13
+ when 'val'
14
+ @value = value.value.to_sym
15
+ end
16
+ end
17
+ self
18
+ end
19
+ end
20
+ end
@@ -1,85 +1,87 @@
1
+ require_relative 'cell_properties/vertical_merge'
1
2
  require_relative 'merge'
2
3
  module OoxmlParser
4
+ # Class for parsing 'w:tcPr' element
3
5
  class CellProperties < OOXMLDocumentObject
4
- attr_accessor :fill, :color, :borders, :margins, :text_direction, :anchor, :anchor_center, :horizontal_overflow, :merge, :table_cell_width, :borders_properties, :shd, :vertical_align
6
+ attr_accessor :fill, :color, :borders, :text_direction, :anchor, :anchor_center, :horizontal_overflow, :table_cell_width, :borders_properties, :vertical_align
7
+ # @return [GridSpan] data about grid span
8
+ attr_accessor :grid_span
9
+ # @return [TableMargins] margins
10
+ attr_accessor :vertical_merge
11
+ # @return [ParagraphMargins] margins of text in cell
12
+ attr_accessor :margins
13
+ # @return [Shade] shade of cell
14
+ attr_accessor :shade
15
+ # @return [TableMargins] margins of cell
16
+ attr_accessor :table_cell_margin
17
+ # @return [True, False] This element will prevent text from
18
+ # wrapping in the cell under certain conditions. If the cell width is fixed,
19
+ # then noWrap specifies that the cell will not be smaller than that fixed
20
+ # value when other cells in the row are not at their minimum. If the cell
21
+ # width is set to auto or pct, then the content of the cell will not wrap.
22
+ # > ECMA-376, 3rd Edition (June, 2011), Fundamentals and Markup Language Reference 17.4.30.
23
+ attr_accessor :no_wrap
5
24
 
6
- def initialize(borders = nil, color = nil)
7
- @borders = borders
8
- @color = color
9
- @fill = fill
10
- @shd = :none
11
- @merge = false
12
- end
25
+ alias table_cell_borders borders_properties
13
26
 
14
- alias table_cell_margin margins
15
- alias table_cell_margin= margins=
27
+ def parse(node)
28
+ @borders_properties = Borders.new
29
+ @margins = ParagraphMargins.new(parent: self).parse(node)
30
+ @color = PresentationFill.new(parent: self).parse(node)
31
+ @borders = Borders.new(parent: self).parse(node)
32
+ node.xpath('*').each do |node_child|
33
+ case node_child.name
34
+ when 'vMerge'
35
+ @vertical_merge = VerticalMerge.new.parse(node_child)
36
+ when 'vAlign'
37
+ @vertical_align = node_child.attribute('val').value.to_sym
38
+ when 'gridSpan'
39
+ @grid_span = GridSpan.new.parse(node_child)
40
+ when 'tcW'
41
+ @table_cell_width = OoxmlSize.new(node_child.attribute('w').value.to_f)
42
+ when 'tcMar'
43
+ @table_cell_margin = TableMargins.new(parent: self).parse(node_child)
44
+ when 'textDirection'
45
+ @text_direction = value_to_symbol(node_child.attribute('val'))
46
+ when 'noWrap'
47
+ @no_wrap = option_enabled?(node_child)
48
+ when 'shd'
49
+ @shade = Shade.new(parent: self).parse(node_child)
50
+ when 'fill'
51
+ @fill = DocxColorScheme.new(parent: self).parse(node_child)
52
+ when 'tcBorders'
53
+ node_child.xpath('*').each do |border_child|
54
+ case border_child.name
55
+ when 'top'
56
+ @borders_properties.top = BordersProperties.new(parent: self).parse(border_child)
57
+ when 'right'
58
+ @borders_properties.right = BordersProperties.new(parent: self).parse(border_child)
59
+ when 'left'
60
+ @borders_properties.left = BordersProperties.new(parent: self).parse(border_child)
61
+ when 'bottom'
62
+ @borders_properties.bottom = BordersProperties.new(parent: self).parse(border_child)
63
+ when 'tl2br'
64
+ @borders_properties.top_left_to_bottom_right = BordersProperties.new(parent: self).parse(border_child)
65
+ when 'tr2bl'
66
+ @borders_properties.top_right_to_bottom_left = BordersProperties.new(parent: self).parse(border_child)
67
+ end
68
+ end
69
+ end
70
+ end
16
71
 
17
- def self.parse(cell_properties_node)
18
- cell_properties = CellProperties.new(Borders.parse(cell_properties_node), PresentationFill.parse(cell_properties_node))
19
- cell_properties.margins = ParagraphMargins.parse(cell_properties_node)
20
- cell_properties_node.attributes.each do |key, value|
72
+ node.attributes.each do |key, value|
21
73
  case key
22
74
  when 'vert'
23
- cell_properties.text_direction = value.value.to_sym
75
+ @text_direction = value.value.to_sym
24
76
  when 'anchor'
25
- cell_properties.anchor = Alignment.parse(value)
77
+ @anchor = value_to_symbol(value)
26
78
  when 'anchorCtr'
27
- cell_properties.anchor_center = value.value
79
+ @anchor_center = value.value
28
80
  when 'horzOverflow'
29
- cell_properties.horizontal_overflow = value.value.to_sym
81
+ @horizontal_overflow = value.value.to_sym
30
82
  end
31
83
  end
32
- cell_borders = Borders.new
33
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:vMerge").each do |v_merge|
34
- cell_properties.merge = CellMerge.parse(v_merge)
35
- end
36
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:vAlign").each do |valign_node|
37
- cell_properties.vertical_align = valign_node.attribute('val').value.to_sym
38
- end
39
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:gridSpan").each do |grid_span|
40
- cell_properties.merge = CellMerge.new('horizontal', grid_span.attribute('val').value)
41
- end
42
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:tcW").each do |table_cell_width|
43
- cell_properties.table_cell_width = table_cell_width.attribute('w').value.to_f / 567.5
44
- end
45
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:tcMar").each do |cell_margins_node|
46
- cell_properties.table_cell_margin = TableMargins.parse(cell_margins_node)
47
- end
48
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:textDirection").each do |text_direction|
49
- cell_properties.text_direction = Alignment.parse(text_direction.attribute('val'))
50
- end
51
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:tcBorders").each do |tc_boders|
52
- tc_boders.xpath("#{OOXMLDocumentObject.namespace_prefix}:top").each do |top|
53
- cell_borders.top = BordersProperties.parse(top)
54
- end
55
- tc_boders.xpath("#{OOXMLDocumentObject.namespace_prefix}:right").each do |right|
56
- cell_borders.right = BordersProperties.parse(right)
57
- end
58
- tc_boders.xpath("#{OOXMLDocumentObject.namespace_prefix}:left").each do |left|
59
- cell_borders.left = BordersProperties.parse(left)
60
- end
61
- tc_boders.xpath("#{OOXMLDocumentObject.namespace_prefix}:bottom").each do |bottom|
62
- cell_borders.bottom = BordersProperties.parse(bottom)
63
- end
64
- tc_boders.xpath("#{OOXMLDocumentObject.namespace_prefix}:tl2br").each do |tl2br|
65
- cell_borders.top_left_to_bottom_right = BordersProperties.parse(tl2br)
66
- end
67
- tc_boders.xpath("#{OOXMLDocumentObject.namespace_prefix}:tr2bl").each do |tr2bl|
68
- cell_borders.top_right_to_bottom_left = BordersProperties.parse(tr2bl)
69
- end
70
- end
71
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:shd").each do |shd|
72
- next if shd.attribute('val').value == 'nil'
73
- cell_properties.shd = shd.attribute('fill').value
74
- if !shd.attribute('fill').nil? && shd.attribute('fill').value != 'auto'
75
- cell_properties.shd = Color.from_int16(shd.attribute('fill').value)
76
- end
77
- end
78
- cell_properties_node.xpath("#{OOXMLDocumentObject.namespace_prefix}:fill").each do |fill|
79
- cell_properties.fill = DocxColorScheme.parse(fill)
80
- end
81
- cell_properties.borders_properties = cell_borders
82
- cell_properties
84
+ self
83
85
  end
84
86
  end
85
87
  end
@@ -1,5 +1,5 @@
1
1
  module OoxmlParser
2
- class CellMerge
2
+ class GridSpan
3
3
  attr_accessor :type, :count_of_merged_cells, :value
4
4
 
5
5
  def initialize(type = 'horizontal', value = nil, count_of_merged_cells = 2)
@@ -8,15 +8,23 @@ module OoxmlParser
8
8
  @value = value
9
9
  end
10
10
 
11
- # Parse Merge data
12
- # @param [Nokogiri::XML:Element] node with Merge data
13
- # @return [CellMerge] value of CellMerge
14
- def self.parse(node)
15
- merge = CellMerge.new
16
- merge.count_of_merged_cells = node.attribute('count_rows_in_span').nil? ? nil : node.attribute('count_rows_in_span').value
17
- merge.value = node.attribute('val').nil? ? nil : node.attribute('val').value.to_sym
18
- merge.type = node.attribute('type').nil? ? nil : node.attribute('type').value.to_sym
19
- merge
11
+ alias count_rows_in_span count_of_merged_cells
12
+
13
+ # Parse Grid Span data
14
+ # @param [Nokogiri::XML:Element] node with GridSpan data
15
+ # @return [GridSpan] value of GridSpan
16
+ def parse(node)
17
+ node.attributes.each do |key, value|
18
+ case key
19
+ when 'count_rows_in_span'
20
+ @count_of_merged_cells = value.value
21
+ when 'val'
22
+ @value = value.value.to_i
23
+ when 'type'
24
+ @type = value.value.to_sym
25
+ end
26
+ end
27
+ self
20
28
  end
21
29
  end
22
30
  end
@@ -1,25 +1,27 @@
1
1
  require_relative 'table_cell_line'
2
- # Border Data
3
2
  module OoxmlParser
4
- class Border
3
+ # Border Data
4
+ class Border < OOXMLDocumentObject
5
5
  attr_accessor :style, :color
6
6
 
7
- def initialize(style = nil, color = nil)
8
- @style = style
9
- @color = color
10
- end
11
-
12
- def ==(other)
13
- return true if nil? && other.nil?
14
- return false if nil? && !other.nil?
15
- return false if !nil? && other.nil?
16
- return false if style != other.style
17
- return false if color != other.color
18
- true
19
- end
7
+ # Parse Border object
8
+ # @param node [Nokogiri::XML:Element] node to parse
9
+ # @return [Border] result of parsing
10
+ def parse(node)
11
+ node.attributes.each do |key, value|
12
+ case key
13
+ when 'style'
14
+ @style = value_to_symbol(value)
15
+ end
16
+ end
20
17
 
21
- def to_s
22
- "Border style: #{style}, color: #{color}"
18
+ node.xpath('*').each do |node_child|
19
+ case node_child.name
20
+ when 'color'
21
+ @color = Color.parse_color_tag(node_child)
22
+ end
23
+ end
24
+ self
23
25
  end
24
26
  end
25
27
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'border'
2
2
  module OoxmlParser
3
- class Borders < OOXMLDocumentObject
3
+ class Borders < ParagraphBorders
4
4
  attr_accessor :left, :right, :top, :bottom, :inner_vertical, :inner_horizontal, :display, :between, :bar,
5
5
  :top_left_to_bottom_right, :top_right_to_bottom_left, :offset_from
6
6
 
@@ -8,12 +8,14 @@ module OoxmlParser
8
8
  right = BordersProperties.new,
9
9
  top = BordersProperties.new,
10
10
  bottom = BordersProperties.new,
11
- between = BordersProperties.new)
11
+ between = BordersProperties.new,
12
+ parent: nil)
12
13
  @left = left
13
14
  @right = right
14
15
  @top = top
15
16
  @bottom = bottom
16
17
  @between = between
18
+ @parent = parent
17
19
  end
18
20
 
19
21
  def copy
@@ -46,19 +48,6 @@ module OoxmlParser
46
48
  yield(top)
47
49
  end
48
50
 
49
- def border_visual_type
50
- result = []
51
- result << :left if @left.val == :single
52
- result << :right if @right.val == :single
53
- result << :top if @top.val == :single
54
- result << :bottom if @bottom.val == :single
55
- result << :inner if @between.val == :single
56
- return :none if result == []
57
- return :all if result == [:left, :right, :top, :bottom, :inner]
58
- return :outer if result == [:left, :right, :top, :bottom]
59
- return result.first if result.size == 1
60
- end
61
-
62
51
  def to_s
63
52
  "Left border: #{left}, Right: #{right}, Top: #{top}, Bottom: #{bottom}"
64
53
  end
@@ -71,53 +60,47 @@ module OoxmlParser
71
60
  visible
72
61
  end
73
62
 
74
- def self.parse(borders_node)
75
- borders = Borders.new
76
- borders_node.xpath('*').each do |border_node|
77
- case border_node.name
63
+ # Parse Borders object
64
+ # @param node [Nokogiri::XML:Element] node to parse
65
+ # @return [Borders] result of parsing
66
+ def parse(node)
67
+ node.xpath('*').each do |node_child|
68
+ case node_child.name
78
69
  when 'lnL', 'left'
79
- borders.left = TableCellLine.parse(border_node)
70
+ @left = TableCellLine.new(parent: self).parse(node_child)
80
71
  when 'lnR', 'right'
81
- borders.right = TableCellLine.parse(border_node)
72
+ @right = TableCellLine.new(parent: self).parse(node_child)
82
73
  when 'lnT', 'top'
83
- borders.top = TableCellLine.parse(border_node)
74
+ @top = TableCellLine.new(parent: self).parse(node_child)
84
75
  when 'lnB', 'bottom'
85
- borders.bottom = TableCellLine.parse(border_node)
76
+ @bottom = TableCellLine.new(parent: self).parse(node_child)
86
77
  when 'lnTlToBr', 'tl2br'
87
- borders.top_left_to_bottom_right = TableCellLine.parse(border_node)
78
+ @top_left_to_bottom_right = TableCellLine.new(parent: self).parse(node_child)
88
79
  when 'lnBlToTr', 'tr2bl'
89
- borders.top_right_to_bottom_left = TableCellLine.parse(border_node)
80
+ @top_right_to_bottom_left = TableCellLine.new(parent: self).parse(node_child)
90
81
  when 'insideV'
91
- borders.inner_vertical = TableCellLine.parse(border_node)
82
+ @inner_vertical = TableCellLine.new(parent: self).parse(node_child)
92
83
  when 'insideH'
93
- borders.inner_horizontal = TableCellLine.parse(border_node)
84
+ @inner_horizontal = TableCellLine.new(parent: self).parse(node_child)
94
85
  end
95
86
  end
96
- borders
87
+ self
97
88
  end
98
89
 
99
90
  def self.parse_from_style(style_number)
100
- border_style_node = XLSXWorkbook.styles_node.xpath('//xmlns:border')[style_number.to_i]
91
+ node = XLSXWorkbook.styles_node.xpath('//xmlns:border')[style_number.to_i]
101
92
  cell_borders = Borders.new
102
- unless border_style_node.xpath('xmlns:bottom')[0].attribute('style').nil?
103
- cell_borders.bottom = Border.new
104
- cell_borders.bottom.style = border_style_node.xpath('xmlns:bottom')[0].attribute('style').value
105
- cell_borders.bottom.color = Color.parse_color_tag(border_style_node.xpath('xmlns:bottom/xmlns:color')[0])
106
- end
107
- unless border_style_node.xpath('xmlns:top')[0].attribute('style').nil?
108
- cell_borders.top = Border.new
109
- cell_borders.top.style = border_style_node.xpath('xmlns:top')[0].attribute('style').value
110
- cell_borders.top.color = Color.parse_color_tag(border_style_node.xpath('xmlns:top/xmlns:color')[0])
111
- end
112
- unless border_style_node.xpath('xmlns:right')[0].attribute('style').nil?
113
- cell_borders.right = Border.new
114
- cell_borders.right.style = border_style_node.xpath('xmlns:right')[0].attribute('style').value
115
- cell_borders.right.color = Color.parse_color_tag(border_style_node.xpath('xmlns:right/xmlns:color')[0])
116
- end
117
- unless border_style_node.xpath('xmlns:left')[0].attribute('style').nil?
118
- cell_borders.left = Border.new
119
- cell_borders.left.style = border_style_node.xpath('xmlns:left')[0].attribute('style').value
120
- cell_borders.left.color = Color.parse_color_tag(border_style_node.xpath('xmlns:left/xmlns:color')[0])
93
+ node.xpath('*').each do |node_child|
94
+ case node_child.name
95
+ when 'bottom'
96
+ cell_borders.bottom = Border.new(parent: cell_borders).parse(node_child)
97
+ when 'top'
98
+ cell_borders.top = Border.new(parent: cell_borders).parse(node_child)
99
+ when 'right'
100
+ cell_borders.right = Border.new(parent: cell_borders).parse(node_child)
101
+ when 'left'
102
+ cell_borders.left = Border.new(parent: cell_borders).parse(node_child)
103
+ end
121
104
  end
122
105
  cell_borders
123
106
  end
@@ -0,0 +1,21 @@
1
+ module OoxmlParser
2
+ class LineJoin < OOXMLDocumentObject
3
+ attr_accessor :type, :limit
4
+
5
+ # Parse LineJoin object
6
+ # @param node [Nokogiri::XML:Element] node to parse
7
+ # @return [LineJoin] result of parsing
8
+ def parse(node)
9
+ node.xpath('*').each do |node_child|
10
+ case node_child.name
11
+ when 'round', 'bevel'
12
+ @type = node_child.name.to_sym
13
+ when 'miter'
14
+ @type = :miter
15
+ @limit = node_child.attribute('lim').value.to_f
16
+ end
17
+ end
18
+ self
19
+ end
20
+ end
21
+ end
@@ -1,35 +1,41 @@
1
+ require_relative 'table_cell_line/line_join'
1
2
  module OoxmlParser
3
+ # Class for parsing Table Cell Lines
2
4
  class TableCellLine < OOXMLDocumentObject
3
5
  attr_accessor :fill, :dash, :line_join, :head_end, :tail_end, :align, :width, :cap_type, :compound_line_type
4
6
 
5
- def initialize(fill = nil, line_join = nil)
7
+ def initialize(fill = nil, line_join = nil, parent: nil)
6
8
  @fill = fill
7
9
  @line_join = line_join
10
+ @parent = parent
8
11
  end
9
12
 
10
- def self.parse(border_node)
11
- line = TableCellLine.new(PresentationFill.parse(border_node), LineJoin.parse(border_node))
12
- border_node.xpath('*').each do |border_node_child|
13
- case border_node_child.name
14
- when 'prstDash'
15
- when 'custDash'
16
- when 'headEnd'
17
- line.head_end = LineEnd.parse(border_node_child)
18
- when 'tailEnd'
19
- line.tail_end = LineEnd.parse(border_node_child)
20
- when 'ln'
21
- return TableCellLine.parse(border_node_child)
22
- end
23
- end
24
- border_node.attributes.each do |key, value|
13
+ # Parse TableCellLine object
14
+ # @param node [Nokogiri::XML:Element] node to parse
15
+ # @return [TableCellLine] result of parsing
16
+ def parse(node)
17
+ @fill = PresentationFill.new(parent: self).parse(node)
18
+ @line_join = LineJoin.new(parent: self).parse(node)
19
+ node.attributes.each do |key, value|
25
20
  case key
26
21
  when 'w'
27
- line.width = value.value.to_f / 12_700.0
22
+ @width = OoxmlSize.new(value.value.to_f, :emu)
28
23
  when 'algn'
29
- line.align = Alignment.parse(value)
24
+ @align = value_to_symbol(value)
25
+ end
26
+ end
27
+
28
+ node.xpath('*').each do |node_child|
29
+ case node_child.name
30
+ when 'headEnd'
31
+ @head_end = LineEnd.new(parent: self).parse(node_child)
32
+ when 'tailEnd'
33
+ @tail_end = LineEnd.new(parent: self).parse(node_child)
34
+ when 'ln'
35
+ return TableCellLine.new(parent: self).parse(node_child)
30
36
  end
31
37
  end
32
- line
38
+ self
33
39
  end
34
40
  end
35
41
  end
@@ -0,0 +1,20 @@
1
+ module OoxmlParser
2
+ # Class for parsing `w:trHeight` object
3
+ class TableRowHeight < OOXMLDocumentObject
4
+ # @return [Integer] value of size
5
+ attr_accessor :value
6
+
7
+ # Parse TableRowHeight
8
+ # @param [Nokogiri::XML:Node] node with TableRowHeight
9
+ # @return [TableRowHeight] result of parsing
10
+ def parse(node)
11
+ node.attributes.each do |key, value|
12
+ case key
13
+ when 'val'
14
+ @value = OoxmlSize.new(value.value.to_f)
15
+ end
16
+ end
17
+ self
18
+ end
19
+ end
20
+ end