openxml-docx 0.10.6 → 0.11.0.rc

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 (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,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingAnchor < Container
4
+ class WordProcessingDrawingAnchor < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :anchor
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingEffectExtent < Element
4
+ class WordProcessingDrawingEffectExtent < OpenXml::Docx::Element
5
5
  tag :effectExtent
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingExtent < Element
4
+ class WordProcessingDrawingExtent < OpenXml::Docx::Element
5
5
  tag :extent
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingInline < Container
4
+ class WordProcessingDrawingInline < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :inline
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingNvGraphicFrameProperties < Container
4
+ class WordProcessingDrawingNvGraphicFrameProperties < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :cNvGraphicFramePr
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingObjectNvProperties < Element
4
+ class WordProcessingDrawingObjectNvProperties < OpenXml::Docx::Element
5
5
  tag :docPr
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingPositionH < Container
4
+ class WordProcessingDrawingPositionH < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :positionH
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingPositionOffset < Element
4
+ class WordProcessingDrawingPositionOffset < OpenXml::Docx::Element
5
5
  tag :posOffset
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingPositionV < Container
4
+ class WordProcessingDrawingPositionV < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :positionV
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingSimplePosition < Element
4
+ class WordProcessingDrawingSimplePosition < OpenXml::Docx::Element
5
5
  tag :simplePos
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapCoordinate < Element
4
+ class WordProcessingDrawingWrapCoordinate < OpenXml::Docx::Element
5
5
  namespace :wp
6
6
 
7
7
  attr_reader :tag
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapNone < Element
4
+ class WordProcessingDrawingWrapNone < OpenXml::Docx::Element
5
5
  tag :wrapNone
6
6
  namespace :wp
7
7
  end
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapPolygon < Container
4
+ class WordProcessingDrawingWrapPolygon < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :wrapPolygon
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapSquare < Element
4
+ class WordProcessingDrawingWrapSquare < OpenXml::Docx::Element
5
5
  tag :wrapSquare
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapThrough < Container
4
+ class WordProcessingDrawingWrapThrough < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :wrapThrough
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapTight < Container
4
+ class WordProcessingDrawingWrapTight < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :wrapTight
6
8
  namespace :wp
7
9
 
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingDrawingWrapTopAndBottom < Element
4
+ class WordProcessingDrawingWrapTopAndBottom < OpenXml::Docx::Element
5
5
  tag :wrapTopAndBottom
6
6
  namespace :wp
7
7
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingGroupsGroupShapeProperties < Container
4
+ class WordProcessingGroupsGroupShapeProperties < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :grpSpPr
6
8
  namespace :wpg
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingGroupsNvShapeDrawingProperties < Container
4
+ class WordProcessingGroupsNvShapeDrawingProperties < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :cNvGrpSpPr
6
8
  namespace :wpg
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingShapesBodyProperties < Container
4
+ class WordProcessingShapesBodyProperties < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :bodyPr
6
8
  namespace :wps
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingShapesNvDrawingProperties < Container
4
+ class WordProcessingShapesNvDrawingProperties < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :cNvPr
6
8
  namespace :wps
7
9
 
@@ -1,10 +1,13 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingShapesShape < Container
4
+ class WordProcessingShapesShape < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :wsp
6
8
  namespace :wps
7
9
  attribute :normal_east_asian_flow, expects: :boolean, displays_as: :normalEastAsianFlow
10
+
8
11
  end
9
12
  end
10
13
  end
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingShapesShapeProperties < Container
4
+ class WordProcessingShapesShapeProperties < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :spPr
6
8
  namespace :wps
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordProcessingShapesTextualContent < Container
4
+ class WordProcessingShapesTextualContent < OpenXml::Docx::Element
5
+ include HasChildren, HasProperties
6
+
5
7
  tag :txbx
6
8
  namespace :wps
7
9
 
@@ -1,7 +1,9 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  module Elements
4
- class WordprocessingShapeGroup < OpenXml::Docx::Elements::Container
4
+ class WordprocessingShapeGroup < OpenXml::Docx::Element
5
+ include HasChildren
6
+
5
7
  tag :wgp
6
8
  namespace :wpg
7
9
 
@@ -1,6 +1,6 @@
1
1
  module OpenXml
2
2
  module Docx
3
- module PropertyBuilder
3
+ module HasProperties
4
4
 
5
5
  def self.included(base)
6
6
  base.extend ClassMethods
@@ -50,6 +50,13 @@ module OpenXml
50
50
  end
51
51
  end
52
52
 
53
+ def to_xml(xml)
54
+ super(xml) do
55
+ property_xml(xml)
56
+ yield xml if block_given?
57
+ end
58
+ end
59
+
53
60
  def property_xml(xml)
54
61
  props = properties.keys.map(&method(:send)).compact
55
62
  return if props.none?(&:render?)
@@ -66,7 +73,11 @@ module OpenXml
66
73
  end
67
74
 
68
75
  def properties_tag
69
- self.class.properties_tag
76
+ self.class.properties_tag || default_properties_tag
77
+ end
78
+
79
+ def default_properties_tag
80
+ :"#{tag}Pr"
70
81
  end
71
82
 
72
83
  end
@@ -10,10 +10,10 @@ module OpenXml
10
10
  attribute :shadow, expects: :boolean
11
11
  attribute :size, expects: :positive_integer, displays_as: :sz
12
12
  attribute :space, expects: :positive_integer
13
- attribute :theme_color, expects: :valid_theme_color
13
+ attribute :theme_color, one_of: OpenXml::Docx::THEME_COLORS
14
14
  attribute :theme_shade, expects: :hex_digit
15
15
  attribute :theme_tint, expects: :hex_digit
16
- attribute :type, expects: :valid_type, displays_as: :val
16
+ attribute :type, one_of: OpenXml::Docx::BORDER_TYPES, displays_as: :val
17
17
  end
18
18
 
19
19
  def initialize(tag=:bdr)
@@ -4,7 +4,7 @@ module OpenXml
4
4
  class Color < ComplexProperty
5
5
  with_namespace :w do
6
6
  attribute :color, expects: :hex_color, displays_as: :val
7
- attribute :theme_color, expects: :valid_theme_color
7
+ attribute :theme_color, one_of: OpenXml::Docx::THEME_COLORS
8
8
  attribute :theme_shade, expects: :hex_digit
9
9
  attribute :theme_tint, expects: :hex_digit
10
10
  end
@@ -1,8 +1,10 @@
1
+ require "openxml/has_attributes"
2
+
1
3
  module OpenXml
2
4
  module Docx
3
5
  module Properties
4
6
  class ComplexProperty < BaseProperty
5
- include AttributeBuilder
7
+ include HasAttributes
6
8
 
7
9
  def to_xml(xml)
8
10
  return unless render?
@@ -1,9 +1,11 @@
1
+ require "openxml/has_attributes"
2
+
1
3
  module OpenXml
2
4
  module Docx
3
5
  module Properties
4
6
  class ContainerProperty < BaseProperty
5
7
  include Enumerable
6
- include AttributeBuilder
8
+ include HasAttributes
7
9
 
8
10
  class << self
9
11
  def child_class(*args)
@@ -7,8 +7,8 @@ module OpenXml
7
7
  with_namespace :w do
8
8
  attribute :color, expects: :hex_color
9
9
  attribute :fill, expects: :hex_color
10
- attribute :theme_color, expects: :valid_theme_color
11
- attribute :theme_fill, expects: :valid_theme_color
10
+ attribute :theme_color, one_of: OpenXml::Docx::THEME_COLORS
11
+ attribute :theme_fill, one_of: OpenXml::Docx::THEME_COLORS
12
12
  attribute :theme_fill_shade, expects: :hex_digit
13
13
  attribute :theme_fill_tint, expects: :hex_digit
14
14
  attribute :theme_shade, expects: :hex_digit
@@ -9,10 +9,10 @@ module OpenXml
9
9
  attribute :frame, expects: :boolean
10
10
  attribute :shadow, expects: :boolean
11
11
  attribute :space, expects: :positive_integer
12
- attribute :theme_color, expects: :valid_theme_color
12
+ attribute :theme_color, one_of: OpenXml::Docx::THEME_COLORS
13
13
  attribute :theme_shade, expects: :hex_digit
14
14
  attribute :theme_tint, expects: :hex_digit
15
- attribute :value, expects: :valid_type, displays_as: :val
15
+ attribute :value, one_of: OpenXml::Docx::BORDER_TYPES, displays_as: :val
16
16
  attribute :width, expects: :positive_integer, displays_as: :sz
17
17
  end
18
18
 
@@ -9,10 +9,10 @@ module OpenXml
9
9
  attribute :frame, expects: :boolean
10
10
  attribute :shadow, expects: :boolean
11
11
  attribute :space, expects: :positive_integer
12
- attribute :theme_color, expects: :valid_theme_color
12
+ attribute :theme_color, one_of: OpenXml::Docx::THEME_COLORS
13
13
  attribute :theme_shade, expects: :hex_digit
14
14
  attribute :theme_tint, expects: :hex_digit
15
- attribute :value, expects: :valid_type, displays_as: :val
15
+ attribute :value, one_of: OpenXml::Docx::BORDER_TYPES, displays_as: :val
16
16
  attribute :width, expects: :positive_integer, displays_as: :sz
17
17
  end
18
18
 
@@ -8,7 +8,7 @@ module OpenXml
8
8
 
9
9
  with_namespace :w do
10
10
  attribute :color, expects: :hex_color
11
- attribute :theme_color, expects: :valid_theme_color
11
+ attribute :theme_color, one_of: OpenXml::Docx::THEME_COLORS
12
12
  attribute :theme_shade, expects: :hex_digit
13
13
  attribute :theme_tint, expects: :hex_digit
14
14
  attribute :type, displays_as: :val, one_of: %i(dash dashDotDotHeavy
@@ -1,7 +1,7 @@
1
1
  module OpenXml
2
2
  module Docx
3
3
  class Section
4
- include PropertyBuilder
4
+ include HasProperties
5
5
 
6
6
  properties_tag :sectPr
7
7
 
@@ -1,8 +1,9 @@
1
+ require "openxml/has_attributes"
2
+
1
3
  module OpenXml
2
4
  module Docx
3
5
  class Style
4
- include AttributeBuilder
5
- include PropertyBuilder
6
+ include HasAttributes, HasProperties
6
7
 
7
8
  attr_reader :paragraph, :character, :table, :type
8
9
 
@@ -1,5 +1,5 @@
1
1
  module OpenXml
2
2
  module Docx
3
- VERSION = "0.10.6"
3
+ VERSION = "0.11.0.rc"
4
4
  end
5
5
  end