ooxml_parser 0.22.0 → 0.25.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 (233) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/{effect_reference.rb → style_matrix_reference.rb} +4 -4
  3. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style.rb +4 -6
  4. data/lib/ooxml_parser/common_parser/common_data/coordinates.rb +30 -21
  5. data/lib/ooxml_parser/common_parser/common_data/hyperlink.rb +2 -2
  6. data/lib/ooxml_parser/common_parser/common_data/ooxml_document_object.rb +0 -23
  7. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/shade.rb +2 -2
  8. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_spacing.rb +2 -2
  9. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_position.rb +5 -5
  10. data/lib/ooxml_parser/common_parser/parser/encryption_checker.rb +43 -0
  11. data/lib/ooxml_parser/common_parser/parser.rb +3 -1
  12. data/lib/ooxml_parser/common_parser.rb +15 -0
  13. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/comments/comment.rb +0 -0
  14. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/comments.rb +0 -0
  15. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/comments_extended/comment_extended.rb +0 -0
  16. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/comments_extended.rb +0 -0
  17. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/document_background.rb +0 -0
  18. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/document_properties.rb +0 -0
  19. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/document_settings.rb +0 -0
  20. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/document_structure_helpers.rb +0 -0
  21. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/document_style/document_style_helper.rb +0 -0
  22. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/document_style.rb +0 -0
  23. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/bookmark_end.rb +0 -0
  24. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/bookmark_start.rb +0 -0
  25. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/comment_range_end.rb +0 -0
  26. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/comment_range_start.rb +0 -0
  27. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/accent.rb +0 -0
  28. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/argument_properties/argument_size.rb +0 -0
  29. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/argument_properties.rb +0 -0
  30. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/bar.rb +0 -0
  31. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/box.rb +0 -0
  32. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/delimeter.rb +0 -0
  33. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/fraction.rb +0 -0
  34. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/function.rb +0 -0
  35. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/group_char.rb +0 -0
  36. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/index.rb +0 -0
  37. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/limit.rb +0 -0
  38. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/math_run/math_run_properties.rb +0 -0
  39. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/math_run.rb +0 -0
  40. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/matrix/matrix_row.rb +0 -0
  41. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/matrix.rb +0 -0
  42. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/nary/nary_properties/nary_grow.rb +0 -0
  43. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/nary/nary_properties/nary_limit_location.rb +0 -0
  44. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/nary/nary_properties.rb +0 -0
  45. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/nary.rb +0 -0
  46. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/pre_sub_superscript.rb +0 -0
  47. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula/radical.rb +0 -0
  48. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_formula.rb +0 -0
  49. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_helper.rb +0 -0
  50. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/docx_paragraph_run_helpers.rb +0 -0
  51. data/lib/ooxml_parser/docx_parser/document_structure/docx_paragraph/docx_paragraph_run/instruction_text.rb +22 -0
  52. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/object/ole_object.rb +0 -0
  53. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/object.rb +0 -0
  54. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/shape/shape_properties/shape_margins.rb +0 -0
  55. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/shape/shape_properties/shape_size.rb +0 -0
  56. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/shape/shape_properties/stroke.rb +0 -0
  57. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/shape/shape_properties.rb +0 -0
  58. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/shape.rb +0 -0
  59. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/text_fill.rb +0 -0
  60. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run/text_outline.rb +0 -0
  61. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/docx_paragraph_run.rb +8 -7
  62. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/field_simple.rb +0 -0
  63. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/frame_properties.rb +0 -0
  64. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/indents.rb +1 -1
  65. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/inserted.rb +0 -0
  66. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/sdt/sdt_content.rb +0 -0
  67. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/sdt/sdt_properties.rb +0 -0
  68. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/structured_document_tag.rb +0 -0
  69. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph/style_parametres.rb +0 -0
  70. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/docx_paragraph.rb +1 -5
  71. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/header_footer.rb +0 -0
  72. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering/multilevel_type.rb +0 -0
  73. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering/numbering_level/level_justification.rb +0 -0
  74. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering/numbering_level/level_text.rb +0 -0
  75. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering/numbering_level/numbering_format.rb +0 -0
  76. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering/numbering_level/suffix.rb +0 -0
  77. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering/numbering_level.rb +0 -0
  78. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/abstract_numbering.rb +0 -0
  79. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering/numbering_definition.rb +0 -0
  80. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/numbering.rb +0 -0
  81. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/columns/column.rb +0 -0
  82. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/columns.rb +0 -0
  83. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/document_grid.rb +0 -0
  84. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/footnote_properties.rb +0 -0
  85. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/note.rb +0 -0
  86. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/page_margins.rb +0 -0
  87. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/page_properties.rb +0 -0
  88. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/page_properties/page_size.rb +0 -0
  89. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/styles/document_defaults/paragraph_properties_default.rb +0 -0
  90. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/styles/document_defaults/run_properties_default.rb +0 -0
  91. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/styles/document_defaults.rb +0 -0
  92. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure → document_structure}/styles.rb +0 -0
  93. data/lib/ooxml_parser/docx_parser/{docx_data/document_structure.rb → document_structure.rb} +0 -0
  94. data/lib/ooxml_parser/{docx_parser/docx_parser.rb → docx_parser.rb} +2 -3
  95. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/comment_authors/comment_author.rb +0 -0
  96. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/comment_authors.rb +0 -0
  97. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_comments/presentation_comment.rb +0 -0
  98. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_comments.rb +0 -0
  99. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_helpers.rb +0 -0
  100. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_theme/font_scheme/font_collection/text_font.rb +0 -0
  101. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_theme/font_scheme/font_collection.rb +0 -0
  102. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_theme/font_scheme.rb +0 -0
  103. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_theme/theme_color.rb +0 -0
  104. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/presentation_theme.rb +0 -0
  105. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/background/background_properties/stretch.rb +0 -0
  106. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/background/background_properties.rb +0 -0
  107. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/background.rb +0 -0
  108. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/common_slide_data/shape_tree.rb +0 -0
  109. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/common_slide_data.rb +0 -0
  110. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/connection_shape.rb +0 -0
  111. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/graphic_frame/graphic_frame.rb +0 -0
  112. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/presentation_alternate_content.rb +0 -0
  113. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/presentation_notes.rb +0 -0
  114. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/shapes_grouping.rb +0 -0
  115. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/animation_effect/animation_effect.rb +0 -0
  116. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/set_time_node/behavior/behavior.rb +0 -0
  117. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/set_time_node/behavior/target_element.rb +0 -0
  118. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/set_time_node/set_time_node.rb +0 -0
  119. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/time_node/common_timing/codition_list/condition.rb +0 -0
  120. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/time_node/common_timing/condition_list.rb +0 -0
  121. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/time_node/common_timing.rb +0 -0
  122. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing/time_node.rb +0 -0
  123. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide/timing.rb +0 -0
  124. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/slide_helper.rb +0 -0
  125. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/transition/transition/sound_action/sound.rb +0 -0
  126. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/transition/transition/sound_action.rb +0 -0
  127. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/transition/transition.rb +0 -0
  128. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/transition/transition_properties/transition_properties/wheel.rb +0 -0
  129. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide/transition/transition_properties/transition_properties.rb +0 -0
  130. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide.rb +0 -0
  131. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide_layout_file.rb +0 -0
  132. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide_layouts_helper.rb +0 -0
  133. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide_master_file.rb +0 -0
  134. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide_masters_helper.rb +0 -0
  135. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/slide_size.rb +0 -0
  136. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation → presentation}/table_styles.rb +0 -0
  137. data/lib/ooxml_parser/pptx_parser/{pptx_data/presentation.rb → presentation.rb} +2 -3
  138. data/lib/ooxml_parser/{pptx_parser/pptx_parser.rb → pptx_parser.rb} +1 -1
  139. data/lib/ooxml_parser/version.rb +1 -1
  140. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/chartsheet.rb +0 -0
  141. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/defined_name.rb +0 -0
  142. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache/pivot_cache_definition/cache_fields/cache_field/shared_items.rb +0 -0
  143. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache/pivot_cache_definition/cache_fields/cache_field.rb +0 -0
  144. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache/pivot_cache_definition/cache_fields.rb +0 -0
  145. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache/pivot_cache_definition/cache_source/worksheet_source.rb +0 -0
  146. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache/pivot_cache_definition/cache_source.rb +0 -0
  147. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache/pivot_cache_definition.rb +0 -0
  148. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_cache.rb +0 -0
  149. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/column_row_items/column_row_item.rb +0 -0
  150. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/column_row_items.rb +0 -0
  151. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/location.rb +0 -0
  152. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/pivot_fields/pivot_field/items/item.rb +0 -0
  153. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/pivot_fields/pivot_field/items.rb +0 -0
  154. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/pivot_fields/pivot_field.rb +0 -0
  155. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/pivot_fields.rb +0 -0
  156. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition/pivot_table_style_info.rb +0 -0
  157. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/pivot_table_definition.rb +0 -0
  158. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/shared_string_table/string_index.rb +0 -0
  159. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/shared_string_table.rb +0 -0
  160. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/sheet.rb +0 -0
  161. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/cell_xfs/cell_style/alignment.rb +0 -0
  162. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/cell_xfs/cell_style/protection.rb +0 -0
  163. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/cell_xfs/xf.rb +0 -0
  164. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/cell_xfs.rb +0 -0
  165. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/differential_formatting_records.rb +0 -0
  166. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/fills/fill/pattern_fill.rb +0 -0
  167. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/fills/fill.rb +0 -0
  168. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/fills.rb +0 -0
  169. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/fonts/font.rb +0 -0
  170. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/fonts.rb +0 -0
  171. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/number_formats/number_format.rb +0 -0
  172. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/number_formats.rb +0 -0
  173. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/xlsx_borders/xlsx_border.rb +0 -0
  174. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet/xlsx_borders.rb +0 -0
  175. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/style_sheet.rb +0 -0
  176. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/workbook_helpers.rb +0 -0
  177. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/workbook_protection.rb +0 -0
  178. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/excel_comments/author.rb +0 -0
  179. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/excel_comments/comment_list.rb +0 -0
  180. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/excel_comments/excel_comment.rb +0 -0
  181. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/excel_comments.rb +0 -0
  182. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/ole_objects.rb +0 -0
  183. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/page_setup.rb +0 -0
  184. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/protected_range.rb +0 -0
  185. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/sheet_format_properties.rb +0 -0
  186. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/sheet_protection.rb +0 -0
  187. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/sheet_view/pane.rb +1 -1
  188. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/sheet_view/selection.rb +1 -1
  189. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/sheet_view.rb +1 -1
  190. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/autofilter/filter_column/custom_filters/custom_filter.rb +0 -0
  191. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/autofilter/filter_column/custom_filters.rb +0 -0
  192. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/autofilter/filter_column.rb +0 -0
  193. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/autofilter.rb +0 -0
  194. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule/color_scale.rb +0 -0
  195. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule/data_bar/conditional_format_value_object.rb +0 -0
  196. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule/data_bar.rb +0 -0
  197. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule/differential_formatting_record.rb +0 -0
  198. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule/icon_set/conditional_formatting_icon.rb +0 -0
  199. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule/icon_set.rb +0 -0
  200. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting/conditional_formatting_rule.rb +0 -0
  201. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings/conditional_formatting.rb +0 -0
  202. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/conditional_formattings.rb +0 -0
  203. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/data_validations/data_validation/data_validation_formula.rb +0 -0
  204. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/data_validations/data_validation.rb +0 -0
  205. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/data_validations.rb +0 -0
  206. data/lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group/sparklines/sparkline.rb +26 -0
  207. data/lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group/sparklines.rb +33 -0
  208. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group.rb +5 -0
  209. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/sparkline_groups.rb +0 -0
  210. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension/x14_table.rb +0 -0
  211. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list/extension.rb +0 -0
  212. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/extension_list.rb +0 -0
  213. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/table_columns/table_column.rb +0 -0
  214. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/table_columns.rb +0 -0
  215. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part/table_style_info.rb +0 -0
  216. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/table_part.rb +0 -0
  217. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/worksheet_helper.rb +0 -0
  218. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_column_properties.rb +0 -0
  219. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_drawing/client_data.rb +0 -0
  220. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_drawing/xlsx_drawing_position_parameters.rb +0 -0
  221. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_drawing.rb +0 -0
  222. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_header_footer/header_footer_child.rb +0 -0
  223. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_header_footer.rb +0 -0
  224. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_row/xlsx_cell/formula.rb +0 -0
  225. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_row/xlsx_cell.rb +0 -0
  226. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet/xlsx_row.rb +1 -1
  227. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook → workbook}/worksheet.rb +0 -0
  228. data/lib/ooxml_parser/xlsx_parser/{xlsx_data/view_model/workbook.rb → workbook.rb} +0 -0
  229. data/lib/ooxml_parser/{xlsx_parser/xlsx_parser.rb → xlsx_parser.rb} +1 -1
  230. data/lib/ooxml_parser.rb +4 -16
  231. metadata +223 -234
  232. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/fill_reference.rb +0 -31
  233. data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/shape/docx_shape/shape_style/line_reference.rb +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f18fbe0fd1cdc17b4fa15edd44442ab0aab56a6620ba4539635b4e8c2d676b3c
4
- data.tar.gz: de14faa95be23f0a4dc6fa9541adf184fed69bc769f837d30a2fd63321f7b765
3
+ metadata.gz: 409ce77d24b38512604d5215a2bd6a54f887685db71cd9942c81935ef678f3b0
4
+ data.tar.gz: 4f7edddf4bab2d5d6ab9485754b333a2943d2df96fdcc933d671e820cd9dc70d
5
5
  SHA512:
6
- metadata.gz: 65800c4573bb1859c02d5795c0e45b6bd50b07349aaeba24e3c1565e09022f0a25c3ddff43780cb7642b02c76343ad929e3304e4bb4a75d555158c47ff47537e
7
- data.tar.gz: b67e977b6af0047b52d2dce951fc57335bb80758bfd0a5188a9afa30a343ac408bcd227d41d14e0481e2ff4c3ae10dda283160dcd72962994f193aa69d8f59f4
6
+ metadata.gz: aad06b0a4dd775d5efe4411d43b87ebda68fe05a5a15924fb6773d77169141284baaf8047eee042634a2e6145649ac0fce2e9aa143d401587434598eeff5f73d
7
+ data.tar.gz: c2ab404a2ab3f559a312da5953da7a668b4ae1c359ff790bc4b4d577ccbd453e4314844125cc64e144c884f9e187389586c98f085c4d27ca5837d8a1b9e61f9d
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OoxmlParser
4
- # Class for parsing `a:effectRef` tags
5
- class EffectReference < OOXMLDocumentObject
4
+ # Class for parsing `a:fillRef`, `a:effectRef`, `a:lnRef` tags
5
+ class StyleMatrixReference < OOXMLDocumentObject
6
6
  # @return [Integer] Style Matrix Index
7
7
  attr_reader :index
8
8
  # @return [Color] scheme color of EffectReference
9
9
  attr_reader :scheme_color
10
10
 
11
- # Parse EffectReference object
11
+ # Parse StyleMatrixReference object
12
12
  # @param node [Nokogiri::XML:Element] node to parse
13
- # @return [EffectReference] result of parsing
13
+ # @return [StyleMatrixReference] result of parsing
14
14
  def parse(node)
15
15
  node.attributes.each do |key, value|
16
16
  case key
@@ -1,9 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'shape_style/effect_reference'
4
- require_relative 'shape_style/fill_reference'
3
+ require_relative 'shape_style/style_matrix_reference'
5
4
  require_relative 'shape_style/font_reference'
6
- require_relative 'shape_style/line_reference'
7
5
  module OoxmlParser
8
6
  # Class for parsing `wps:style` tags
9
7
  class ShapeStyle < OOXMLDocumentObject
@@ -23,13 +21,13 @@ module OoxmlParser
23
21
  node.xpath('*').each do |node_child|
24
22
  case node_child.name
25
23
  when 'effectRef'
26
- @effect_reference = EffectReference.new(parent: self).parse(node_child)
24
+ @effect_reference = StyleMatrixReference.new(parent: self).parse(node_child)
27
25
  when 'fillRef'
28
- @fill_reference = FillReference.new(parent: self).parse(node_child)
26
+ @fill_reference = StyleMatrixReference.new(parent: self).parse(node_child)
29
27
  when 'fontRef'
30
28
  @font_reference = FontReference.new(parent: self).parse(node_child)
31
29
  when 'lnRef'
32
- @line_reference = LineReference.new(parent: self).parse(node_child)
30
+ @line_reference = StyleMatrixReference.new(parent: self).parse(node_child)
33
31
  end
34
32
  end
35
33
  self
@@ -12,23 +12,6 @@ module OoxmlParser
12
12
  end
13
13
 
14
14
  class << self
15
- # @param [String] string to parse
16
- # @return [Coordinates]
17
- def parse_coordinates_from_string(string)
18
- coordinates = Coordinates.new
19
- begin
20
- coordinates.list = string.match(/'\w+'/)[0].delete("''")
21
- rescue StandardError
22
- 'Raise Exception'
23
- end
24
- string = string.split('!').last
25
- if coordinates?(string)
26
- coordinates.row = string.scan(/[0-9]/).join.to_i
27
- coordinates.column = string.scan(/[A-Z]/).join
28
- end
29
- coordinates
30
- end
31
-
32
15
  # Parse range of coordinates
33
16
  # @param arguments_string [String] data to parse
34
17
  # @return [Array] result
@@ -109,6 +92,18 @@ module OoxmlParser
109
92
  end
110
93
  end
111
94
 
95
+ # Parse string to coordinates
96
+ # @param [String] string to parse
97
+ # @return [Coordinates] result
98
+ def parse_string(string)
99
+ string = extract_list_from_string(string) if list_name_in_string?(string)
100
+ if Coordinates.coordinates?(string)
101
+ @row = string.scan(/\d/).join.to_i
102
+ @column = string.scan(/[A-Z]/).join
103
+ end
104
+ self
105
+ end
106
+
112
107
  # @return [Integer] number of column
113
108
  # This method takes @column string
114
109
  # and converts into integer
@@ -118,10 +113,6 @@ module OoxmlParser
118
113
  end
119
114
  end
120
115
 
121
- alias get_column_number column_number
122
- extend Gem::Deprecate
123
- deprecate :get_column_number, 'column_number', 2020, 1
124
-
125
116
  # Compares rows of two cells
126
117
  # @param [Coordinates] other_cell other cell coordinates
127
118
  # @return [true, false] true, if row greater, than other row
@@ -151,5 +142,23 @@ module OoxmlParser
151
142
  def ==(other)
152
143
  other.is_a?(Coordinates) ? (@row == other.row && @column == other.column) : false
153
144
  end
145
+
146
+ private
147
+
148
+ # Check if there is list name in string
149
+ # @param [String] string to check
150
+ # @return [Boolean] result
151
+ def list_name_in_string?(string)
152
+ string.include?('!')
153
+ end
154
+
155
+ # Extract list name and leave coordinates
156
+ # @param [String] string to parse
157
+ # @return [String] coordinates string without list
158
+ def extract_list_from_string(string)
159
+ split = string.split('!')
160
+ @list = split[0...-1].join('!')
161
+ split[-1]
162
+ end
154
163
  end
155
164
  end
@@ -43,14 +43,14 @@ module OoxmlParser
43
43
  node.attributes.each do |key, value|
44
44
  case key
45
45
  when 'location'
46
- @url = Coordinates.parse_coordinates_from_string(value.value)
46
+ @url = Coordinates.new.parse_string(value.value)
47
47
  when 'id'
48
48
  @id = value.value
49
49
  @url = OOXMLDocumentObject.get_link_from_rels(@id) unless @id.empty?
50
50
  when 'tooltip'
51
51
  @tooltip = value.value
52
52
  when 'ref'
53
- @coordinates = Coordinates.parse_coordinates_from_string(value.value)
53
+ @coordinates = Coordinates.new.parse_string(value.value)
54
54
  when 'action'
55
55
  @action_link = value.value
56
56
  when 'highlightClick'
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'filemagic' unless Gem.win_platform?
4
3
  require 'securerandom'
5
4
  require 'nokogiri'
6
5
  require 'zip'
@@ -59,28 +58,6 @@ module OoxmlParser
59
58
  # @return [String] path to root folder
60
59
  attr_accessor :path_to_folder
61
60
 
62
- # @param path_to_file [String] file
63
- # @param ignore_system [True, False] should host system be ignored, since
64
- # this method is OS-dependent
65
- # @return [True, False] Check if file is protected by password on open
66
- def encrypted_file?(path_to_file, ignore_system: false)
67
- if Gem.win_platform? || ignore_system
68
- warn 'FileMagic and checking file for encryption is not supported on Windows'
69
- return false
70
- end
71
- file_result = FileMagic.new(:mime).file(path_to_file)
72
- # Support of Encrtypted status in `file` util was introduced in file v5.20
73
- # but LTS version of ubuntu before 16.04 uses older `file` and it return `Composite Document`
74
- # https://github.com/file/file/blob/master/ChangeLog#L217
75
- if file_result.include?('encrypted') ||
76
- file_result.include?('Composite Document File V2 Document, No summary info') ||
77
- file_result.include?('application/CDFV2-corrupt')
78
- warn("File #{path_to_file} is encrypted. Can't parse it")
79
- return true
80
- end
81
- false
82
- end
83
-
84
61
  # Copy this file and rename to zip
85
62
  # @param path [String] path to file
86
63
  # @return [String] path to result zip
@@ -22,8 +22,8 @@ module OoxmlParser
22
22
 
23
23
  # @return [String] text representation
24
24
  def to_s
25
- "Value: `#{value}`, "\
26
- "Color: `#{color}`, "\
25
+ "Value: `#{value}`, " \
26
+ "Color: `#{color}`, " \
27
27
  "Fill: `#{fill}`"
28
28
  end
29
29
 
@@ -38,8 +38,8 @@ module OoxmlParser
38
38
  private
39
39
 
40
40
  # This is dirty workaround for situations
41
- # Then @line_rule parsed after @line so getting
42
- # @line value is totally screwed up
41
+ # Then `@line_rule` parsed after `@line` so getting
42
+ # `@line` value is totally screwed up
43
43
  # @param [Nokogiri::XML:Node] node with ParagraphSpacing
44
44
  # @return [Hash] hash with sorted values
45
45
  # TODO: Totally redone parsing of spacing to remove this workaround
@@ -8,11 +8,11 @@ module OoxmlParser
8
8
 
9
9
  # @return [String] result of convert of object to string
10
10
  def to_s
11
- "Table position left: #{left}, "\
12
- "right: #{right}, "\
13
- "top: #{top}, "\
14
- "bottom #{bottom}, "\
15
- "position x: #{position_x}, "\
11
+ "Table position left: #{left}, " \
12
+ "right: #{right}, " \
13
+ "top: #{top}, " \
14
+ "bottom #{bottom}, " \
15
+ "position x: #{position_x}, " \
16
16
  "position y: #{position_y}"
17
17
  end
18
18
 
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Check if file is encrypted
5
+ class EncryptionChecker
6
+ def initialize(file_path, ignore_system: false)
7
+ @file_path = file_path
8
+ @ignore_system = ignore_system
9
+ end
10
+
11
+ # @return [Boolean] is file encrypted
12
+ def encrypted?
13
+ return false unless compatible_system?
14
+
15
+ # Support of Encrypted status in `file` util was introduced in file v5.20
16
+ # but LTS version of ubuntu before 16.04 uses older `file` and it return `Composite Document`
17
+ # https://github.com/file/file/blob/0eb7c1b83341cc954620b45d2e2d65ee7df1a4e7/ChangeLog#L623
18
+ if mime_type.include?('encrypted') ||
19
+ mime_type.include?('Composite Document File V2 Document, No summary info') ||
20
+ mime_type.include?('application/CDFV2-corrupt')
21
+ warn("File #{@file_path} is encrypted. Can't parse it")
22
+ return true
23
+ end
24
+ false
25
+ end
26
+
27
+ private
28
+
29
+ # Check if system is compatible with `file` utility
30
+ # @return [Boolean] Result of check
31
+ def compatible_system?
32
+ return true if !Gem.win_platform? && !@ignore_system
33
+
34
+ warn 'Checking file for encryption is not supported on Windows'
35
+ false
36
+ end
37
+
38
+ # @return [String] mime type of file
39
+ def mime_type
40
+ @mime_type ||= `file -b --mime "#{@file_path}"`
41
+ end
42
+ end
43
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'parser/encryption_checker'
4
+
3
5
  module OoxmlParser
4
6
  # Basic class for OoxmlParser
5
7
  class Parser
@@ -7,7 +9,7 @@ module OoxmlParser
7
9
  # @param path_to_file [String] file
8
10
  # @return [CommonDocumentStructure] structure of doc
9
11
  def self.parse_format(path_to_file)
10
- return nil if OOXMLDocumentObject.encrypted_file?(path_to_file)
12
+ return nil if EncryptionChecker.new(path_to_file).encrypted?
11
13
 
12
14
  path_to_zip_file = OOXMLDocumentObject.copy_file_and_rename_to_zip(path_to_file)
13
15
  OOXMLDocumentObject.path_to_folder = path_to_zip_file.sub(File.basename(path_to_zip_file), '')
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'common_parser/common_data/ooxml_document_object'
4
+ require_relative 'common_parser/common_data/color'
5
+ require_relative 'common_parser/common_data/coordinates'
6
+ require_relative 'common_parser/common_data/font_style'
7
+ require_relative 'common_parser/common_data/borders_properties'
8
+ require_relative 'common_parser/common_data/hyperlink'
9
+ require_relative 'common_parser/common_data/paragraph'
10
+ require_relative 'common_parser/common_data/alternate_content/alternate_content'
11
+ require_relative 'common_parser/common_data/colors/presentation_fill'
12
+ require_relative 'common_parser/common_data/table'
13
+ require_relative 'common_parser/common_data/relationships'
14
+ require_relative 'common_parser/parser'
15
+ require_relative 'common_parser/common_document_structure'
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Class for parsing `w:instrText` object
5
+ class InstructionText < TextValue
6
+ # @return [Boolean] is current object for hyperlink
7
+ def hyperlink?
8
+ value.include?('HYPERLINK')
9
+ end
10
+
11
+ # @return [Boolean] is current object for page number
12
+ def page_number?
13
+ value.match?(/PAGE\s+\\\*/)
14
+ end
15
+
16
+ # @return [Hyperlink] convert InstructionText to Hyperlink
17
+ def to_hyperlink
18
+ Hyperlink.new(value.sub('HYPERLINK ', '').split(' \\o ').first,
19
+ value.sub('HYPERLINK', '').split(' \\o ').last)
20
+ end
21
+ end
22
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  # noinspection RubyTooManyInstanceVariablesInspection
4
4
  require_relative 'docx_paragraph_run/docx_paragraph_run_helpers'
5
+ require_relative 'docx_paragraph_run/instruction_text'
5
6
  require_relative 'docx_paragraph_run/object'
6
7
  require_relative 'docx_paragraph_run/text_outline'
7
8
  require_relative 'docx_paragraph_run/text_fill'
@@ -15,9 +16,9 @@ module OoxmlParser
15
16
  :link, :highlight, :effect, :caps, :w,
16
17
  :position, :em, :spacing, :break, :touch, :shape, :footnote, :endnote, :fld_char, :style,
17
18
  :comments, :alternate_content, :page_number, :text_outline, :text_fill
18
- # @return [String] type of instruction used for upper level of run
19
- # http://officeopenxml.com/WPfieldInstructions.php
20
- attr_accessor :instruction
19
+ # @return [InstructionText] text of instruction
20
+ # See ECMA-376, 17.16.23 instrText (Field Code)
21
+ attr_reader :instruction_text
21
22
  # @return [RunProperties] properties of run
22
23
  attr_accessor :run_properties
23
24
  # @return [RunObject] object of run
@@ -96,10 +97,10 @@ module OoxmlParser
96
97
  parse_properties(node_child)
97
98
  @run_properties = RunProperties.new(parent: self).parse(node_child)
98
99
  when 'instrText'
99
- if node_child.text.include?('HYPERLINK')
100
- hyperlink = Hyperlink.new(node_child.text.sub('HYPERLINK ', '').split(' \\o ').first, node_child.text.sub('HYPERLINK', '').split(' \\o ').last)
101
- @link = hyperlink
102
- elsif node_child.text[/PAGE\s+\\\*/]
100
+ @instruction_text = InstructionText.new(parent: self).parse(node_child)
101
+ if @instruction_text.hyperlink?
102
+ @link = @instruction_text.to_hyperlink
103
+ elsif @instruction_text.page_number?
103
104
  @text = '*PAGE NUMBER*'
104
105
  end
105
106
  when 'fldChar'
@@ -25,7 +25,7 @@ module OoxmlParser
25
25
  # Convert to string
26
26
  # @return [String] result of conversion
27
27
  def to_s
28
- "first line indent: #{@first_line_indent}, left indent: #{@left_indent}, "\
28
+ "first line indent: #{@first_line_indent}, left indent: #{@left_indent}, " \
29
29
  "right indent: #{@right_indent}, hanging indent: #{@hanging_indent}"
30
30
  end
31
31
 
@@ -18,7 +18,7 @@ module OoxmlParser
18
18
  # Class for data of DocxParagraph
19
19
  class DocxParagraph < OOXMLDocumentObject
20
20
  include DocxParagraphHelper
21
- attr_accessor :number, :bookmark_start, :bookmark_end, :align, :spacing, :ind, :numbering,
21
+ attr_accessor :number, :align, :spacing, :ind, :numbering,
22
22
  :character_style_array, :page_break, :borders, :keep_lines,
23
23
  :contextual_spacing, :sector_properties, :page_numbering, :section_break, :style, :keep_next,
24
24
  :orphan_control
@@ -39,8 +39,6 @@ module OoxmlParser
39
39
 
40
40
  def initialize(parent: nil)
41
41
  @number = 0
42
- @bookmark_start = []
43
- @bookmark_end = []
44
42
  @align = :left
45
43
  @spacing = Spacing.new
46
44
  @ind = Indents.new
@@ -62,8 +60,6 @@ module OoxmlParser
62
60
  # @return [void]
63
61
  def initialize_copy(source)
64
62
  super
65
- @bookmark_start = source.bookmark_start.clone
66
- @bookmark_end = source.bookmark_end.clone
67
63
  @character_style_array = source.character_style_array.clone
68
64
  @spacing = source.spacing.clone
69
65
  end