openxml-docx 0.10.6 → 0.11.0.rc

Sign up to get free protection for your applications and to get access to all the features.
Files changed (451) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/Gemfile +7 -1
  4. data/Gemfile.lock +33 -30
  5. data/README.md +34 -8
  6. data/bin/console +14 -0
  7. data/bin/setup +8 -0
  8. data/lib/openxml/docx.rb +5 -2
  9. data/lib/openxml/docx/element.rb +9 -0
  10. data/lib/openxml/docx/elements.rb +2 -2
  11. data/lib/openxml/docx/elements/absolute_position_tab.rb +1 -1
  12. data/lib/openxml/docx/elements/background.rb +3 -2
  13. data/lib/openxml/docx/elements/bidi_embed.rb +3 -1
  14. data/lib/openxml/docx/elements/bidi_override.rb +3 -1
  15. data/lib/openxml/docx/elements/book_fold_printing.rb +1 -1
  16. data/lib/openxml/docx/elements/book_fold_printing_sheets.rb +1 -1
  17. data/lib/openxml/docx/elements/book_fold_reverse_printing.rb +1 -1
  18. data/lib/openxml/docx/elements/break.rb +1 -1
  19. data/lib/openxml/docx/elements/carriage_return.rb +1 -1
  20. data/lib/openxml/docx/elements/compatibility_setting.rb +3 -1
  21. data/lib/openxml/docx/elements/compatibility_settings.rb +3 -1
  22. data/lib/openxml/docx/elements/content_part.rb +1 -1
  23. data/lib/openxml/docx/elements/control.rb +1 -1
  24. data/lib/openxml/docx/elements/dirty.rb +1 -1
  25. data/lib/openxml/docx/elements/drawing.rb +4 -1
  26. data/lib/openxml/docx/elements/embed_bold.rb +1 -1
  27. data/lib/openxml/docx/elements/embed_bold_italic.rb +1 -1
  28. data/lib/openxml/docx/elements/embed_italic.rb +1 -1
  29. data/lib/openxml/docx/elements/embed_regular.rb +1 -1
  30. data/lib/openxml/docx/elements/embed_system_fonts.rb +1 -1
  31. data/lib/openxml/docx/elements/embed_true_type_fonts.rb +1 -1
  32. data/lib/openxml/docx/elements/even_and_odd_headers.rb +1 -1
  33. data/lib/openxml/docx/elements/family.rb +1 -1
  34. data/lib/openxml/docx/elements/font.rb +3 -1
  35. data/lib/openxml/docx/elements/font_alternate_name.rb +1 -1
  36. data/lib/openxml/docx/elements/font_character_set.rb +1 -1
  37. data/lib/openxml/docx/elements/font_panose_one.rb +1 -1
  38. data/lib/openxml/docx/elements/font_pitch.rb +1 -1
  39. data/lib/openxml/docx/elements/font_sig.rb +1 -1
  40. data/lib/openxml/docx/elements/grid_column.rb +1 -1
  41. data/lib/openxml/docx/elements/group_shape.rb +3 -1
  42. data/lib/openxml/docx/elements/last_rendered_page_break.rb +1 -1
  43. data/lib/openxml/docx/elements/long_day.rb +1 -1
  44. data/lib/openxml/docx/elements/long_month.rb +1 -1
  45. data/lib/openxml/docx/elements/long_year.rb +1 -1
  46. data/lib/openxml/docx/elements/markup_compatibility_alternate_content.rb +4 -1
  47. data/lib/openxml/docx/elements/markup_compatibility_choice.rb +3 -1
  48. data/lib/openxml/docx/elements/markup_compatibility_fallback.rb +4 -1
  49. data/lib/openxml/docx/elements/nonbreaking_hyphen.rb +1 -1
  50. data/lib/openxml/docx/elements/optional_hyphen.rb +1 -1
  51. data/lib/openxml/docx/elements/page_number.rb +1 -1
  52. data/lib/openxml/docx/elements/paragraph.rb +3 -1
  53. data/lib/openxml/docx/elements/ruby.rb +2 -1
  54. data/lib/openxml/docx/elements/run.rb +3 -1
  55. data/lib/openxml/docx/elements/save_subset_fonts.rb +1 -1
  56. data/lib/openxml/docx/elements/section_properties.rb +4 -1
  57. data/lib/openxml/docx/elements/short_day.rb +1 -1
  58. data/lib/openxml/docx/elements/short_month.rb +1 -1
  59. data/lib/openxml/docx/elements/short_year.rb +1 -1
  60. data/lib/openxml/docx/elements/symbol.rb +1 -1
  61. data/lib/openxml/docx/elements/tab.rb +1 -1
  62. data/lib/openxml/docx/elements/table.rb +3 -1
  63. data/lib/openxml/docx/elements/table_cell.rb +3 -1
  64. data/lib/openxml/docx/elements/table_grid.rb +3 -1
  65. data/lib/openxml/docx/elements/table_row.rb +3 -1
  66. data/lib/openxml/docx/elements/text.rb +1 -1
  67. data/lib/openxml/docx/elements/textbox_content.rb +4 -1
  68. data/lib/openxml/docx/elements/title_page.rb +1 -1
  69. data/lib/openxml/docx/elements/vml_container.rb +3 -1
  70. data/lib/openxml/docx/elements/word_processing_drawing_anchor.rb +3 -1
  71. data/lib/openxml/docx/elements/word_processing_drawing_effect_extent.rb +1 -1
  72. data/lib/openxml/docx/elements/word_processing_drawing_extent.rb +1 -1
  73. data/lib/openxml/docx/elements/word_processing_drawing_inline.rb +3 -1
  74. data/lib/openxml/docx/elements/word_processing_drawing_nv_graphic_frame_properties.rb +3 -1
  75. data/lib/openxml/docx/elements/word_processing_drawing_object_nv_properties.rb +1 -1
  76. data/lib/openxml/docx/elements/word_processing_drawing_position_h.rb +3 -1
  77. data/lib/openxml/docx/elements/word_processing_drawing_position_offset.rb +1 -1
  78. data/lib/openxml/docx/elements/word_processing_drawing_position_v.rb +3 -1
  79. data/lib/openxml/docx/elements/word_processing_drawing_simple_position.rb +1 -1
  80. data/lib/openxml/docx/elements/word_processing_drawing_wrap_coordinate.rb +1 -1
  81. data/lib/openxml/docx/elements/word_processing_drawing_wrap_none.rb +1 -1
  82. data/lib/openxml/docx/elements/word_processing_drawing_wrap_polygon.rb +3 -1
  83. data/lib/openxml/docx/elements/word_processing_drawing_wrap_square.rb +1 -1
  84. data/lib/openxml/docx/elements/word_processing_drawing_wrap_through.rb +3 -1
  85. data/lib/openxml/docx/elements/word_processing_drawing_wrap_tight.rb +3 -1
  86. data/lib/openxml/docx/elements/word_processing_drawing_wrap_top_and_bottom.rb +1 -1
  87. data/lib/openxml/docx/elements/word_processing_groups_group_shape_properties.rb +3 -1
  88. data/lib/openxml/docx/elements/word_processing_groups_nv_shape_drawing_properties.rb +3 -1
  89. data/lib/openxml/docx/elements/word_processing_shapes_body_properties.rb +3 -1
  90. data/lib/openxml/docx/elements/word_processing_shapes_nv_drawing_properties.rb +3 -1
  91. data/lib/openxml/docx/elements/word_processing_shapes_shape.rb +4 -1
  92. data/lib/openxml/docx/elements/word_processing_shapes_shape_properties.rb +3 -1
  93. data/lib/openxml/docx/elements/word_processing_shapes_textual_contents.rb +3 -1
  94. data/lib/openxml/docx/elements/wordprocessing_shape_group.rb +3 -1
  95. data/lib/openxml/docx/{property_builder.rb → has_properties.rb} +13 -2
  96. data/lib/openxml/docx/properties/border.rb +2 -2
  97. data/lib/openxml/docx/properties/color.rb +1 -1
  98. data/lib/openxml/docx/properties/complex_property.rb +3 -1
  99. data/lib/openxml/docx/properties/container_property.rb +3 -1
  100. data/lib/openxml/docx/properties/shading.rb +2 -2
  101. data/lib/openxml/docx/properties/table_border.rb +2 -2
  102. data/lib/openxml/docx/properties/table_cell_border.rb +2 -2
  103. data/lib/openxml/docx/properties/underline.rb +1 -1
  104. data/lib/openxml/docx/section.rb +1 -1
  105. data/lib/openxml/docx/style.rb +3 -2
  106. data/lib/openxml/docx/version.rb +1 -1
  107. data/lib/openxml/vml.rb +1 -2
  108. data/lib/openxml/vml/elements.rb +2 -2
  109. data/lib/openxml/vml/elements/group.rb +3 -1
  110. data/lib/openxml/vml/elements/rectangle.rb +3 -1
  111. data/lib/openxml/vml/elements/rounded_rectangle.rb +3 -1
  112. data/openxml-docx.gemspec +29 -22
  113. metadata +47 -347
  114. data/lib/openxml/docx/attribute_builder.rb +0 -327
  115. data/lib/openxml/docx/elements/container.rb +0 -37
  116. data/lib/openxml/docx/elements/element.rb +0 -65
  117. data/lib/openxml/drawingml.rb +0 -17
  118. data/lib/openxml/drawingml/elements.rb +0 -13
  119. data/lib/openxml/drawingml/elements/adjust_values_list.rb +0 -11
  120. data/lib/openxml/drawingml/elements/blip.rb +0 -18
  121. data/lib/openxml/drawingml/elements/blip_fill.rb +0 -14
  122. data/lib/openxml/drawingml/elements/children_extents.rb +0 -14
  123. data/lib/openxml/drawingml/elements/children_offset.rb +0 -14
  124. data/lib/openxml/drawingml/elements/extension.rb +0 -13
  125. data/lib/openxml/drawingml/elements/extension_list.rb +0 -11
  126. data/lib/openxml/drawingml/elements/extents.rb +0 -14
  127. data/lib/openxml/drawingml/elements/fill_rectangle.rb +0 -16
  128. data/lib/openxml/drawingml/elements/graphic.rb +0 -10
  129. data/lib/openxml/drawingml/elements/graphic_data.rb +0 -12
  130. data/lib/openxml/drawingml/elements/graphic_frame_locks.rb +0 -17
  131. data/lib/openxml/drawingml/elements/head_end.rb +0 -28
  132. data/lib/openxml/drawingml/elements/no_autofit.rb +0 -10
  133. data/lib/openxml/drawingml/elements/no_fill.rb +0 -10
  134. data/lib/openxml/drawingml/elements/non_visual_drawing_properties.rb +0 -17
  135. data/lib/openxml/drawingml/elements/non_visual_picture_drawing_properties.rb +0 -12
  136. data/lib/openxml/drawingml/elements/non_visual_picture_properties.rb +0 -10
  137. data/lib/openxml/drawingml/elements/non_visual_shape_drawing_properties.rb +0 -12
  138. data/lib/openxml/drawingml/elements/offset.rb +0 -14
  139. data/lib/openxml/drawingml/elements/outline.rb +0 -36
  140. data/lib/openxml/drawingml/elements/picture.rb +0 -10
  141. data/lib/openxml/drawingml/elements/picture_locks.rb +0 -23
  142. data/lib/openxml/drawingml/elements/picture_shape_properties.rb +0 -13
  143. data/lib/openxml/drawingml/elements/preset_geometry.rb +0 -210
  144. data/lib/openxml/drawingml/elements/preset_text_warp.rb +0 -25
  145. data/lib/openxml/drawingml/elements/round.rb +0 -10
  146. data/lib/openxml/drawingml/elements/shape_guide.rb +0 -40
  147. data/lib/openxml/drawingml/elements/solid_fill.rb +0 -10
  148. data/lib/openxml/drawingml/elements/source_rectangle.rb +0 -16
  149. data/lib/openxml/drawingml/elements/srgb_color.rb +0 -14
  150. data/lib/openxml/drawingml/elements/stretch.rb +0 -10
  151. data/lib/openxml/drawingml/elements/tail_end.rb +0 -28
  152. data/lib/openxml/drawingml/elements/transform_effect.rb +0 -18
  153. data/spec/elements/absolute_position_tab_spec.rb +0 -58
  154. data/spec/elements/background_spec.rb +0 -52
  155. data/spec/elements/bidi_embed_spec.rb +0 -35
  156. data/spec/elements/bidi_override_spec.rb +0 -35
  157. data/spec/elements/book_fold_printing_sheets_spec.rb +0 -27
  158. data/spec/elements/book_fold_printing_spec.rb +0 -19
  159. data/spec/elements/book_fold_reverse_printing_spec.rb +0 -19
  160. data/spec/elements/break_spec.rb +0 -34
  161. data/spec/elements/carriage_return_spec.rb +0 -12
  162. data/spec/elements/compatibility_setting_spec.rb +0 -41
  163. data/spec/elements/compatibility_settings_spec.rb +0 -8
  164. data/spec/elements/content_part_spec.rb +0 -18
  165. data/spec/elements/control_spec.rb +0 -41
  166. data/spec/elements/deleted_text_spec.rb +0 -24
  167. data/spec/elements/dirty_spec.rb +0 -12
  168. data/spec/elements/drawing_spec.rb +0 -11
  169. data/spec/elements/drawingml/adjust_values_list_spec.rb +0 -8
  170. data/spec/elements/drawingml/blip_fill_spec.rb +0 -44
  171. data/spec/elements/drawingml/blip_spec.rb +0 -47
  172. data/spec/elements/drawingml/extension_list_spec.rb +0 -8
  173. data/spec/elements/drawingml/extension_spec.rb +0 -19
  174. data/spec/elements/drawingml/extents_spec.rb +0 -33
  175. data/spec/elements/drawingml/fill_rectangle_spec.rb +0 -76
  176. data/spec/elements/drawingml/graphic_data_spec.rb +0 -19
  177. data/spec/elements/drawingml/graphic_frame_locks_spec.rb +0 -107
  178. data/spec/elements/drawingml/graphic_spec.rb +0 -8
  179. data/spec/elements/drawingml/head_end_spec.rb +0 -48
  180. data/spec/elements/drawingml/no_autofit_spec.rb +0 -8
  181. data/spec/elements/drawingml/no_fill_spec.rb +0 -8
  182. data/spec/elements/drawingml/non_visual_drawing_properties_spec.rb +0 -68
  183. data/spec/elements/drawingml/non_visual_picture_drawing_properties_spec.rb +0 -23
  184. data/spec/elements/drawingml/non_visual_picture_properties_spec.rb +0 -8
  185. data/spec/elements/drawingml/non_visual_shape_drawing_properties_spec.rb +0 -24
  186. data/spec/elements/drawingml/offset_spec.rb +0 -42
  187. data/spec/elements/drawingml/outline_spec.rb +0 -64
  188. data/spec/elements/drawingml/picture_locks_spec.rb +0 -122
  189. data/spec/elements/drawingml/picture_shape_properties_spec.rb +0 -21
  190. data/spec/elements/drawingml/picture_spec.rb +0 -8
  191. data/spec/elements/drawingml/preset_geometry_spec.rb +0 -19
  192. data/spec/elements/drawingml/preset_text_warp_spec.rb +0 -36
  193. data/spec/elements/drawingml/round_spec.rb +0 -8
  194. data/spec/elements/drawingml/shape_guide_spec.rb +0 -53
  195. data/spec/elements/drawingml/solid_fill_spec.rb +0 -8
  196. data/spec/elements/drawingml/source_rectangle_spec.rb +0 -76
  197. data/spec/elements/drawingml/srgb_color_spec.rb +0 -19
  198. data/spec/elements/drawingml/stretch_spec.rb +0 -8
  199. data/spec/elements/drawingml/tail_end_spec.rb +0 -47
  200. data/spec/elements/drawingml/transform_effect_spec.rb +0 -102
  201. data/spec/elements/embed_system_fonts_spec.rb +0 -19
  202. data/spec/elements/embed_true_type_fonts_spec.rb +0 -19
  203. data/spec/elements/even_and_odd_headers_spec.rb +0 -23
  204. data/spec/elements/font_alternate_name_spec.rb +0 -19
  205. data/spec/elements/font_character_set_spec.rb +0 -19
  206. data/spec/elements/font_panose_one_spec.rb +0 -19
  207. data/spec/elements/font_pitch_spec.rb +0 -21
  208. data/spec/elements/font_sig_spec.rb +0 -74
  209. data/spec/elements/grid_column_spec.rb +0 -15
  210. data/spec/elements/group_shape_spec.rb +0 -11
  211. data/spec/elements/last_rendered_page_break_spec.rb +0 -12
  212. data/spec/elements/long_day_spec.rb +0 -12
  213. data/spec/elements/long_month_spec.rb +0 -12
  214. data/spec/elements/long_year_spec.rb +0 -12
  215. data/spec/elements/markup_compatibility_alternate_content_spec.rb +0 -11
  216. data/spec/elements/markup_compatibility_choice_spec.rb +0 -22
  217. data/spec/elements/markup_compatibility_fallback_spec.rb +0 -11
  218. data/spec/elements/nonbreaking_hyphen_spec.rb +0 -12
  219. data/spec/elements/optional_hyphen_spec.rb +0 -12
  220. data/spec/elements/page_number_spec.rb +0 -12
  221. data/spec/elements/paragraph_spec.rb +0 -60
  222. data/spec/elements/ruby_spec.rb +0 -66
  223. data/spec/elements/run_spec.rb +0 -15
  224. data/spec/elements/save_subset_fonts_spec.rb +0 -19
  225. data/spec/elements/section_properties_spec.rb +0 -12
  226. data/spec/elements/short_day_spec.rb +0 -12
  227. data/spec/elements/short_month_spec.rb +0 -12
  228. data/spec/elements/short_year_spec.rb +0 -12
  229. data/spec/elements/symbol_spec.rb +0 -31
  230. data/spec/elements/tab_spec.rb +0 -12
  231. data/spec/elements/table_cell_spec.rb +0 -15
  232. data/spec/elements/table_grid_spec.rb +0 -17
  233. data/spec/elements/table_row_spec.rb +0 -18
  234. data/spec/elements/table_spec.rb +0 -21
  235. data/spec/elements/text_spec.rb +0 -24
  236. data/spec/elements/textbox_content_spec.rb +0 -8
  237. data/spec/elements/title_page_spec.rb +0 -23
  238. data/spec/elements/vml/group_spec.rb +0 -534
  239. data/spec/elements/vml/rectangle_spec.rb +0 -729
  240. data/spec/elements/vml/rounded_rectangle_spec.rb +0 -784
  241. data/spec/elements/vml_container_spec.rb +0 -11
  242. data/spec/elements/word_processing_drawing_anchor_spec.rb +0 -122
  243. data/spec/elements/word_processing_drawing_effect_extent_spec.rb +0 -77
  244. data/spec/elements/word_processing_drawing_extent_spec.rb +0 -34
  245. data/spec/elements/word_processing_drawing_nv_graphic_frame_properties_spec.rb +0 -11
  246. data/spec/elements/word_processing_drawing_object_nv_properties_spec.rb +0 -67
  247. data/spec/elements/word_processing_drawing_position_h_spec.rb +0 -22
  248. data/spec/elements/word_processing_drawing_position_v_spec.rb +0 -22
  249. data/spec/elements/word_processing_drawing_simple_position_spec.rb +0 -44
  250. data/spec/elements/word_processing_drawing_wrap_coordinate_spec.rb +0 -40
  251. data/spec/elements/word_processing_drawing_wrap_none_spec.rb +0 -12
  252. data/spec/elements/word_processing_drawing_wrap_polygon_spec.rb +0 -23
  253. data/spec/elements/word_processing_drawing_wrap_square_spec.rb +0 -65
  254. data/spec/elements/word_processing_drawing_wrap_through_spec.rb +0 -43
  255. data/spec/elements/word_processing_drawing_wrap_tight_spec.rb +0 -43
  256. data/spec/elements/word_processing_drawing_wrap_top_and_bottom_spec.rb +0 -30
  257. data/spec/elements/word_processing_groups_group_shape_properties_spec.rb +0 -21
  258. data/spec/elements/word_processing_groups_nv_shape_drawing_properties_spec.rb +0 -8
  259. data/spec/elements/word_processing_shapes_body_properties_spec.rb +0 -232
  260. data/spec/elements/word_processing_shapes_nv_drawing_properties_spec.rb +0 -64
  261. data/spec/elements/word_processing_shapes_shape_properties_spec.rb +0 -22
  262. data/spec/elements/word_processing_shapes_shape_spec.rb +0 -23
  263. data/spec/elements/word_processing_shapes_textual_content_spec.rb +0 -23
  264. data/spec/elements/wordprocessing_shape_group_spec.rb +0 -12
  265. data/spec/package_spec.rb +0 -36
  266. data/spec/parts/document_spec.rb +0 -95
  267. data/spec/parts/footer_spec.rb +0 -33
  268. data/spec/parts/header_spec.rb +0 -33
  269. data/spec/parts/settings_spec.rb +0 -19
  270. data/spec/parts/styles_spec.rb +0 -27
  271. data/spec/properties/alignment_spec.rb +0 -58
  272. data/spec/properties/auto_adjust_right_indent_spec.rb +0 -23
  273. data/spec/properties/auto_space_de_spec.rb +0 -23
  274. data/spec/properties/auto_space_dn_spec.rb +0 -23
  275. data/spec/properties/bidi_spec.rb +0 -22
  276. data/spec/properties/bold_spec.rb +0 -22
  277. data/spec/properties/border_spec.rb +0 -82
  278. data/spec/properties/cant_split_spec.rb +0 -22
  279. data/spec/properties/caps_spec.rb +0 -22
  280. data/spec/properties/character_spacing_spec.rb +0 -26
  281. data/spec/properties/color_spec.rb +0 -29
  282. data/spec/properties/column_spec.rb +0 -30
  283. data/spec/properties/columns_spec.rb +0 -164
  284. data/spec/properties/complex_bold_spec.rb +0 -22
  285. data/spec/properties/complex_font_size_spec.rb +0 -24
  286. data/spec/properties/complex_italics_spec.rb +0 -22
  287. data/spec/properties/complex_script_formatting_spec.rb +0 -22
  288. data/spec/properties/compress_punctuation_spec.rb +0 -32
  289. data/spec/properties/conditional_formatting_spec.rb +0 -64
  290. data/spec/properties/contextual_spacing_spec.rb +0 -22
  291. data/spec/properties/div_id_spec.rb +0 -17
  292. data/spec/properties/document_grid_spec.rb +0 -37
  293. data/spec/properties/double_strikethrough_spec.rb +0 -23
  294. data/spec/properties/east_asian_layout_spec.rb +0 -55
  295. data/spec/properties/effect_spec.rb +0 -43
  296. data/spec/properties/emboss_spec.rb +0 -22
  297. data/spec/properties/emphasis_spec.rb +0 -37
  298. data/spec/properties/even_and_odd_headers_spec.rb +0 -22
  299. data/spec/properties/expansion_spec.rb +0 -34
  300. data/spec/properties/font_size_spec.rb +0 -24
  301. data/spec/properties/font_spec.rb +0 -70
  302. data/spec/properties/footer_reference_spec.rb +0 -32
  303. data/spec/properties/form_protection_spec.rb +0 -22
  304. data/spec/properties/frame_spec.rb +0 -101
  305. data/spec/properties/grid_after_spec.rb +0 -26
  306. data/spec/properties/grid_before_spec.rb +0 -26
  307. data/spec/properties/grid_span_spec.rb +0 -24
  308. data/spec/properties/header_reference_spec.rb +0 -32
  309. data/spec/properties/header_spec.rb +0 -17
  310. data/spec/properties/headers_spec.rb +0 -39
  311. data/spec/properties/hidden_spec.rb +0 -22
  312. data/spec/properties/hidden_style_spec.rb +0 -22
  313. data/spec/properties/hidden_text_spec.rb +0 -22
  314. data/spec/properties/hide_mark_spec.rb +0 -22
  315. data/spec/properties/highlight_spec.rb +0 -97
  316. data/spec/properties/imprint_spec.rb +0 -22
  317. data/spec/properties/indentation_spec.rb +0 -100
  318. data/spec/properties/italics_spec.rb +0 -22
  319. data/spec/properties/keep_lines_spec.rb +0 -22
  320. data/spec/properties/keep_next_spec.rb +0 -22
  321. data/spec/properties/kerning_spec.rb +0 -24
  322. data/spec/properties/kinsoku_spec.rb +0 -32
  323. data/spec/properties/language_spec.rb +0 -20
  324. data/spec/properties/latent_styles_exception_spec.rb +0 -68
  325. data/spec/properties/latent_styles_spec.rb +0 -323
  326. data/spec/properties/line_numbering_spec.rb +0 -43
  327. data/spec/properties/linked_style_spec.rb +0 -17
  328. data/spec/properties/manual_width_spec.rb +0 -30
  329. data/spec/properties/math_spec.rb +0 -22
  330. data/spec/properties/mirror_indent_spec.rb +0 -22
  331. data/spec/properties/next_style_spec.rb +0 -17
  332. data/spec/properties/no_proof_spec.rb +0 -23
  333. data/spec/properties/no_wrap_spec.rb +0 -22
  334. data/spec/properties/numbering_spec.rb +0 -37
  335. data/spec/properties/outline_level_spec.rb +0 -20
  336. data/spec/properties/outline_spec.rb +0 -23
  337. data/spec/properties/overflow_punctuation_spec.rb +0 -23
  338. data/spec/properties/page_borders_spec.rb +0 -129
  339. data/spec/properties/page_break_before_spec.rb +0 -22
  340. data/spec/properties/page_margins_spec.rb +0 -64
  341. data/spec/properties/page_numbering_spec.rb +0 -54
  342. data/spec/properties/page_size_spec.rb +0 -43
  343. data/spec/properties/paper_source_spec.rb +0 -30
  344. data/spec/properties/paragraph_borders_spec.rb +0 -66
  345. data/spec/properties/paragraph_style_spec.rb +0 -12
  346. data/spec/properties/parent_style_spec.rb +0 -17
  347. data/spec/properties/personal_compose_spec.rb +0 -23
  348. data/spec/properties/personal_reply_spec.rb +0 -23
  349. data/spec/properties/personal_spec.rb +0 -23
  350. data/spec/properties/phonetic_guide_alignment_spec.rb +0 -42
  351. data/spec/properties/phonetic_guide_base_font_size_spec.rb +0 -25
  352. data/spec/properties/phonetic_guide_font_size_raise_spec.rb +0 -25
  353. data/spec/properties/phonetic_guide_font_size_spec.rb +0 -25
  354. data/spec/properties/phonetic_guide_language_spec.rb +0 -12
  355. data/spec/properties/position_spec.rb +0 -26
  356. data/spec/properties/primary_style_spec.rb +0 -22
  357. data/spec/properties/right_to_left_spec.rb +0 -22
  358. data/spec/properties/rtl_gutter_spec.rb +0 -23
  359. data/spec/properties/run_style_spec.rb +0 -12
  360. data/spec/properties/section_type_spec.rb +0 -33
  361. data/spec/properties/semi_hidden_spec.rb +0 -22
  362. data/spec/properties/shading_spec.rb +0 -64
  363. data/spec/properties/shadow_property_spec.rb +0 -23
  364. data/spec/properties/small_caps_spec.rb +0 -22
  365. data/spec/properties/snap_to_grid_spec.rb +0 -32
  366. data/spec/properties/spacing_spec.rb +0 -67
  367. data/spec/properties/spec_vanish_spec.rb +0 -22
  368. data/spec/properties/strikethrough_spec.rb +0 -23
  369. data/spec/properties/style_aliases_spec.rb +0 -22
  370. data/spec/properties/style_auto_redefinition_spec.rb +0 -22
  371. data/spec/properties/style_lock_spec.rb +0 -22
  372. data/spec/properties/style_name_spec.rb +0 -17
  373. data/spec/properties/supress_auto_hyphens_spec.rb +0 -22
  374. data/spec/properties/supress_line_numbers_spec.rb +0 -22
  375. data/spec/properties/supress_overlap_spec.rb +0 -22
  376. data/spec/properties/tab_spec.rb +0 -45
  377. data/spec/properties/table_border_spec.rb +0 -119
  378. data/spec/properties/table_borders_spec.rb +0 -41
  379. data/spec/properties/table_caption_spec.rb +0 -17
  380. data/spec/properties/table_cell_border_spec.rb +0 -119
  381. data/spec/properties/table_cell_borders_spec.rb +0 -40
  382. data/spec/properties/table_cell_cell_margin_spec.rb +0 -46
  383. data/spec/properties/table_cell_fit_text_spec.rb +0 -23
  384. data/spec/properties/table_cell_margin_spec.rb +0 -40
  385. data/spec/properties/table_cell_margins_spec.rb +0 -46
  386. data/spec/properties/table_cell_spacing_spec.rb +0 -21
  387. data/spec/properties/table_cell_width_spec.rb +0 -21
  388. data/spec/properties/table_description_spec.rb +0 -17
  389. data/spec/properties/table_header_spec.rb +0 -22
  390. data/spec/properties/table_indent_spec.rb +0 -43
  391. data/spec/properties/table_layout_spec.rb +0 -24
  392. data/spec/properties/table_look_spec.rb +0 -43
  393. data/spec/properties/table_overlap_spec.rb +0 -22
  394. data/spec/properties/table_p_pr_spec.rb +0 -68
  395. data/spec/properties/table_row_height_spec.rb +0 -20
  396. data/spec/properties/table_style_spec.rb +0 -17
  397. data/spec/properties/table_width_spec.rb +0 -21
  398. data/spec/properties/tabs_spec.rb +0 -39
  399. data/spec/properties/text_alignment_spec.rb +0 -33
  400. data/spec/properties/text_direction_spec.rb +0 -47
  401. data/spec/properties/textbox_tight_wrap_spec.rb +0 -33
  402. data/spec/properties/title_page_spec.rb +0 -22
  403. data/spec/properties/ui_priority_spec.rb +0 -22
  404. data/spec/properties/underline_spec.rb +0 -45
  405. data/spec/properties/unhide_when_used_spec.rb +0 -22
  406. data/spec/properties/valign_spec.rb +0 -19
  407. data/spec/properties/vertical_alignment_spec.rb +0 -26
  408. data/spec/properties/vertical_merge_spec.rb +0 -22
  409. data/spec/properties/vertical_text_alignment_spec.rb +0 -28
  410. data/spec/properties/wafter_spec.rb +0 -21
  411. data/spec/properties/wbefore_spec.rb +0 -21
  412. data/spec/properties/web_hidden_spec.rb +0 -22
  413. data/spec/properties/widow_control_spec.rb +0 -33
  414. data/spec/properties/word_wrap_spec.rb +0 -33
  415. data/spec/section_spec.rb +0 -48
  416. data/spec/spec_helper.rb +0 -16
  417. data/spec/style_spec.rb +0 -108
  418. data/spec/support/data/elements/break_element.xml +0 -4
  419. data/spec/support/data/elements/break_with_attributes_element.xml +0 -4
  420. data/spec/support/data/elements/grid_column_element.xml +0 -4
  421. data/spec/support/data/elements/paragraph_element.xml +0 -8
  422. data/spec/support/data/elements/paragraph_with_runs_element.xml +0 -14
  423. data/spec/support/data/elements/paragraph_with_section_properties_element.xml +0 -13
  424. data/spec/support/data/elements/run_element.xml +0 -8
  425. data/spec/support/data/elements/symbol_element.xml +0 -4
  426. data/spec/support/data/elements/table_cell_element.xml +0 -8
  427. data/spec/support/data/elements/table_element.xml +0 -18
  428. data/spec/support/data/elements/table_grid_element.xml +0 -6
  429. data/spec/support/data/elements/table_row_element.xml +0 -13
  430. data/spec/support/data/elements/text_element.xml +0 -4
  431. data/spec/support/data/parts/content_types_part.xml +0 -1
  432. data/spec/support/data/parts/document_with_children_part.xml +0 -2
  433. data/spec/support/data/parts/document_with_multiple_sections_part.xml +0 -24
  434. data/spec/support/data/parts/document_with_one_section_part.xml +0 -16
  435. data/spec/support/data/parts/empty_document_part.xml +0 -1
  436. data/spec/support/data/parts/empty_footer_part.xml +0 -1
  437. data/spec/support/data/parts/empty_header_part.xml +0 -1
  438. data/spec/support/data/parts/footer_with_children_part.xml +0 -1
  439. data/spec/support/data/parts/global_rels_part.xml +0 -1
  440. data/spec/support/data/parts/header_with_children_part.xml +0 -1
  441. data/spec/support/data/parts/rels_part.xml +0 -1
  442. data/spec/support/data/parts/settings_part.xml +0 -1
  443. data/spec/support/data/parts/styles_part.xml +0 -1
  444. data/spec/support/data/parts/styles_with_custom_style_part.xml +0 -20
  445. data/spec/support/data/styles/character_styles.xml +0 -15
  446. data/spec/support/data/styles/paragraph_styles.xml +0 -11
  447. data/spec/support/element_test_macros.rb +0 -242
  448. data/spec/support/part_test_macros.rb +0 -27
  449. data/spec/support/property_test_macros.rb +0 -177
  450. data/spec/support/style_test_macros.rb +0 -33
  451. data/spec/support/value_property_test_macros.rb +0 -69
@@ -1,327 +0,0 @@
1
- module OpenXml
2
- module Docx
3
- module AttributeBuilder
4
-
5
- VALID_THEME_COLORS = %i(accent1 accent2 accent3 accent4 accent5 accent6 background1 background2 dark1 dark2 followedHyperlink hyperlink light1 light2 none text1 text2)
6
-
7
- VALID_TYPES = %i(apples
8
- archedScallops
9
- babyPacifier
10
- babyRattle
11
- balloons3Colors
12
- balloonsHotAir
13
- basicBlackDashes
14
- basicBlackDots
15
- basicBlackSquares
16
- basicThinLines
17
- basicWhiteDashes
18
- basicWhiteDots
19
- basicWhiteSquares
20
- basicWideInline
21
- basicWideMidline
22
- basicWideOutline
23
- bats
24
- birds
25
- birdsFlight
26
- cabins
27
- cakeSlice
28
- candyCorn
29
- celticKnotwork
30
- certificateBanner
31
- chainLink
32
- champagneBottle
33
- checkedBarBlack
34
- checkedBarColor
35
- checkered
36
- christmasTree
37
- circlesLines
38
- circlesRectangles
39
- classicalWave
40
- clocks
41
- compass
42
- confetti
43
- confettiGrays
44
- confettiOutlines
45
- confettiStreamers
46
- confettiWhite
47
- cornerTriangles
48
- couponCutoutDashes
49
- couponCutoutDots
50
- crazyMaze
51
- creaturesButterfly
52
- creaturesFish
53
- creaturesInsects
54
- creaturesLadyBug
55
- crossStitch
56
- cup
57
- custom
58
- dashDotStroked
59
- dashed
60
- dashSmallGap
61
- decoArch
62
- decoArchColor
63
- decoBlocks
64
- diamondsGray
65
- dotDash
66
- dotDotDash
67
- dotted
68
- double
69
- doubleD
70
- doubleDiamonds
71
- doubleWave
72
- earth1
73
- earth2
74
- earth3
75
- eclipsingSquares1
76
- eclipsingSquares2
77
- eggsBlack
78
- fans
79
- film
80
- firecrackers
81
- flowersBlockPrint
82
- flowersDaisies
83
- flowersModern1
84
- flowersModern2
85
- flowersPansy
86
- flowersRedRose
87
- flowersRoses
88
- flowersTeacup
89
- flowersTiny
90
- gems
91
- gingerbreadMan
92
- gradient
93
- handmade1
94
- handmade2
95
- heartBalloon
96
- heartGray
97
- hearts
98
- heebieJeebies
99
- holly
100
- houseFunky
101
- hypnotic
102
- iceCreamCones
103
- inset
104
- lightBulb
105
- lightning1
106
- lightning2
107
- mapleLeaf
108
- mapleMuffins
109
- mapPins
110
- marquee
111
- marqueeToothed
112
- moons
113
- mosaic
114
- musicNotes
115
- nil
116
- none
117
- northwest
118
- outset
119
- ovals
120
- packages
121
- palmsBlack
122
- palmsColor
123
- paperClips
124
- papyrus
125
- partyFavor
126
- partyGlass
127
- pencils
128
- people
129
- peopleHats
130
- peopleWaving
131
- poinsettias
132
- postageStamp
133
- pumpkin1
134
- pushPinNote1
135
- pushPinNote2
136
- pyramids
137
- pyramidsAbove
138
- quadrants
139
- rings
140
- safari
141
- sawtooth
142
- sawtoothGray
143
- scaredCat
144
- seattle
145
- shadowedSquares
146
- shapes1
147
- shapes2
148
- sharksTeeth
149
- shorebirdTracks
150
- single
151
- skyrocket
152
- snowflakeFancy
153
- snowflaskes
154
- sombrero
155
- southwest
156
- stars
157
- stars3d
158
- starsBlack
159
- starsShadowed
160
- starsTop
161
- sun
162
- swirligig
163
- thick
164
- thickThinLargeGap
165
- thickThinMediumGap
166
- thickThinSmallGap
167
- thinThickLargeGap
168
- thinThickMediumGap
169
- thinThickSmallGap
170
- thinThickThinLargeGap
171
- thinThickThinMediumGap
172
- thinThickThinSmallGap
173
- threeDEmboss
174
- threeDEngrave
175
- tornPaper
176
- tornPaperBlack
177
- trees
178
- triangle1
179
- triangle2
180
- triangleCircle1
181
- triangleCircle2
182
- triangleParty
183
- triangle
184
- triple
185
- twistedLines1
186
- twistedLines2
187
- vine
188
- wave
189
- waveline
190
- weavingAngles
191
- weavingBraid
192
- weavingRibbon
193
- weavingStrips
194
- whiteFlowers
195
- woodwork
196
- xIllusions
197
- zanyTriangles
198
- zigZag
199
- zigZagStitch)
200
-
201
- def self.included(base)
202
- base.extend(ClassMethods)
203
- end
204
-
205
- module ClassMethods
206
- def attribute(name, expects: nil, one_of: nil, displays_as: nil, namespace: nil, matches: nil, deprecated: false)
207
- bad_names = %w(tag name namespace properties_tag)
208
- raise ArgumentError if bad_names.member? name
209
-
210
- attr_reader name
211
-
212
- define_method "#{name}=" do |value|
213
- valid_in?(value, one_of) unless one_of.nil?
214
- send(expects, value) unless expects.nil?
215
- matches?(value, matches) unless matches.nil?
216
- instance_variable_set "@#{name}", value
217
- end
218
-
219
- camelized_name = name.to_s.gsub(/_([a-z])/i) { $1.upcase }.to_sym
220
- attributes[name] = [displays_as || camelized_name, namespace || @attribute_namespace]
221
- end
222
-
223
- def attributes
224
- @attributes ||= {}
225
- end
226
-
227
- def with_namespace(namespace, &block)
228
- @attribute_namespace = namespace
229
- instance_eval(&block)
230
- end
231
- end
232
-
233
- def render?
234
- attributes.keys.map(&method(:send)).any?
235
- end
236
-
237
- def attributes
238
- self.class.attributes
239
- end
240
-
241
- private
242
-
243
- def xml_attributes
244
- attributes.each_with_object({}) do |(name, options), attrs|
245
- display, namespace = options
246
- value = send(name)
247
- attr_name = "#{namespace}:#{display}"
248
- attr_name = "#{display}" if namespace.nil?
249
- attrs[attr_name] = value unless value.nil?
250
- end
251
- end
252
-
253
- def boolean(value)
254
- message = "Invalid #{name}: frame must be true or false"
255
- raise ArgumentError, message unless [true, false].member? value
256
- end
257
-
258
- def hex_color(value)
259
- message = "Invalid #{name}: must be :auto or a hex color, e.g. 4F1B8C"
260
- raise ArgumentError, message unless value == :auto || value =~ /^[0-9A-F]{6}$/
261
- end
262
-
263
- def hex_digit(value)
264
- message = "Invalid #{name}: must be a two-digit hex number, e.g. BF"
265
- raise ArgumentError, message unless value =~ /^[0-9A-F]{2}$/
266
- end
267
-
268
- def hex_digit_4(value)
269
- message = "Invalid #{name}: must be a four-digit hex number, e.g. BF12"
270
- raise ArgumentError, message unless value =~ /^[0-9A-F]{4}$/
271
- end
272
-
273
- def long_hex_number(value)
274
- message = "Invalid #{name}: must be an eight-digit hex number, e.g., FFAC0013"
275
- raise ArgumentError, message unless value =~ /^[0-9A-F]{8}$/
276
- end
277
-
278
- def hex_string(value)
279
- message = "Invalid #{name}: must be a string of hexadecimal numbers, e.g. FFA23C6E"
280
- raise ArgumentError, message unless value =~ /^[0-9A-F]+$/
281
- end
282
-
283
- def integer(value)
284
- message = "Invalid #{name}: must be an integer"
285
- raise ArgumentError, message unless value.is_a?(Integer)
286
- end
287
-
288
- def positive_integer(value)
289
- message = "Invalid #{name}: must be a positive integer"
290
- raise ArgumentError, message unless value.is_a?(Integer) && value >= 0
291
- end
292
-
293
- def string(value)
294
- message = "Invalid #{name}: must be a string"
295
- raise ArgumentError, message if !value.is_a?(String) || value.length.zero?
296
- end
297
-
298
- def percentage(value)
299
- message = "Invalid #{name}: must be a percentage"
300
- raise ArgumentError, message unless value.is_a?(String) && value =~ /-?[0-9]+(\.[0-9]+)?%/ # Regex supplied in sec. 22.9.2.9 of Office Open XML docs
301
- end
302
-
303
- def on_or_off(value)
304
- valid_in? value, [:on, :off]
305
- end
306
-
307
- def valid_theme_color(value)
308
- valid_in? value, VALID_THEME_COLORS
309
- end
310
-
311
- def valid_type(value)
312
- valid_in? value, VALID_TYPES
313
- end
314
-
315
- def valid_in?(value, list)
316
- message = "Invalid #{name}: must be one of #{list.join(", ")} (was #{value.inspect})"
317
- raise ArgumentError, message unless list.member?(value)
318
- end
319
-
320
- def matches?(value, regexp)
321
- message = "Value does not match #{regexp}"
322
- raise ArgumentError, message unless value =~ regexp
323
- end
324
-
325
- end
326
- end
327
- end
@@ -1,37 +0,0 @@
1
- module OpenXml
2
- module Docx
3
- module Elements
4
- class Container < Element
5
- include PropertyBuilder
6
-
7
- attr_reader :children
8
-
9
- def initialize
10
- @children = []
11
- end
12
-
13
- def <<(child)
14
- children << child
15
- end
16
-
17
- def to_xml(xml)
18
- xml[namespace].public_send(tag, xml_attributes) {
19
- property_xml(xml)
20
- children.each { |child| child.to_xml(xml) }
21
- }
22
- end
23
-
24
- private
25
-
26
- def properties_tag
27
- self.class.properties_tag || default_properties_tag
28
- end
29
-
30
- def default_properties_tag
31
- :"#{tag}Pr"
32
- end
33
-
34
- end
35
- end
36
- end
37
- end
@@ -1,65 +0,0 @@
1
- module OpenXml
2
- module Docx
3
- module Elements
4
- class Element
5
- include AttributeBuilder
6
-
7
- class << self
8
- attr_reader :property_name
9
- attr_reader :namespace
10
-
11
- def tag(*args)
12
- @tag = args.first if args.any?
13
- @tag
14
- end
15
-
16
- def name(*args)
17
- @property_name = args.first if args.any?
18
- @name
19
- end
20
-
21
- def namespace(*args)
22
- @namespace = args.first if args.any?
23
- @namespace
24
- end
25
-
26
- end
27
-
28
- def tag
29
- self.class.tag || default_tag
30
- end
31
-
32
- def name
33
- self.class.property_name || default_name
34
- end
35
-
36
- def namespace
37
- self.class.namespace || default_namespace
38
- end
39
-
40
- def to_xml(xml)
41
- xml[namespace].public_send(tag, xml_attributes)
42
- end
43
-
44
- private
45
-
46
- def default_tag
47
- (class_name[0, 1].downcase + class_name[1..-1]).to_sym
48
- end
49
-
50
- def default_name
51
- class_name.gsub(/(.)([A-Z])/, '\1_\2').downcase
52
- end
53
-
54
- def default_namespace
55
- :w
56
- end
57
-
58
- def class_name
59
- self.class.to_s.split(/::/).last
60
- end
61
-
62
- end
63
- end
64
- end
65
- end
@@ -1,17 +0,0 @@
1
- module OpenXml
2
- module DrawingML
3
- end
4
- end
5
-
6
- # For now, we'll rely on Docx's basic implementations
7
- require "openxml/docx/attribute_builder"
8
- require "openxml/docx/property_builder"
9
- require "openxml/docx/properties"
10
- require "openxml/docx/elements"
11
- require "openxml/docx/package"
12
- require "openxml/docx/parts"
13
- require "openxml/docx/section"
14
- require "openxml/docx/style"
15
-
16
- # And then add our own stuff
17
- require "openxml/drawingml/elements"
@@ -1,13 +0,0 @@
1
- module OpenXml
2
- module DrawingML
3
- module Elements
4
- end
5
- end
6
- end
7
-
8
- require "openxml/docx/elements/element"
9
- require "openxml/docx/elements/container"
10
- require "openxml/docx/elements/text"
11
- Dir.glob("#{File.join(File.dirname(__FILE__), "elements", "*.rb")}").each do |file|
12
- require file
13
- end