openxml-docx 0.8.0.beta1

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 (331) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.travis.yml +6 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +56 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +67 -0
  8. data/Rakefile +6 -0
  9. data/example +23 -0
  10. data/lib/openxml-docx.rb +1 -0
  11. data/lib/openxml/docx.rb +20 -0
  12. data/lib/openxml/docx/attribute_builder.rb +298 -0
  13. data/lib/openxml/docx/elements.rb +13 -0
  14. data/lib/openxml/docx/elements/absolute_position_tab.rb +31 -0
  15. data/lib/openxml/docx/elements/bidi_embed.rb +19 -0
  16. data/lib/openxml/docx/elements/bidi_override.rb +19 -0
  17. data/lib/openxml/docx/elements/break.rb +26 -0
  18. data/lib/openxml/docx/elements/carriage_return.rb +10 -0
  19. data/lib/openxml/docx/elements/container.rb +37 -0
  20. data/lib/openxml/docx/elements/content_part.rb +10 -0
  21. data/lib/openxml/docx/elements/control.rb +12 -0
  22. data/lib/openxml/docx/elements/deleted_text.rb +10 -0
  23. data/lib/openxml/docx/elements/dirty.rb +8 -0
  24. data/lib/openxml/docx/elements/element.rb +64 -0
  25. data/lib/openxml/docx/elements/last_rendered_page_break.rb +8 -0
  26. data/lib/openxml/docx/elements/long_day.rb +10 -0
  27. data/lib/openxml/docx/elements/long_month.rb +10 -0
  28. data/lib/openxml/docx/elements/long_year.rb +10 -0
  29. data/lib/openxml/docx/elements/nonbreaking_hyphen.rb +9 -0
  30. data/lib/openxml/docx/elements/optional_hyphen.rb +10 -0
  31. data/lib/openxml/docx/elements/page_number.rb +9 -0
  32. data/lib/openxml/docx/elements/paper_source.rb +13 -0
  33. data/lib/openxml/docx/elements/paragraph.rb +58 -0
  34. data/lib/openxml/docx/elements/ruby.rb +48 -0
  35. data/lib/openxml/docx/elements/run.rb +51 -0
  36. data/lib/openxml/docx/elements/short_day.rb +10 -0
  37. data/lib/openxml/docx/elements/short_month.rb +10 -0
  38. data/lib/openxml/docx/elements/short_year.rb +10 -0
  39. data/lib/openxml/docx/elements/symbol.rb +13 -0
  40. data/lib/openxml/docx/elements/tab.rb +8 -0
  41. data/lib/openxml/docx/elements/text.rb +30 -0
  42. data/lib/openxml/docx/package.rb +34 -0
  43. data/lib/openxml/docx/parts.rb +10 -0
  44. data/lib/openxml/docx/parts/document.rb +66 -0
  45. data/lib/openxml/docx/parts/settings.rb +22 -0
  46. data/lib/openxml/docx/parts/styles.rb +50 -0
  47. data/lib/openxml/docx/properties.rb +21 -0
  48. data/lib/openxml/docx/properties/alignment.rb +14 -0
  49. data/lib/openxml/docx/properties/auto_adjust_right_indent.rb +11 -0
  50. data/lib/openxml/docx/properties/auto_space_de.rb +10 -0
  51. data/lib/openxml/docx/properties/auto_space_dn.rb +10 -0
  52. data/lib/openxml/docx/properties/base_property.rb +50 -0
  53. data/lib/openxml/docx/properties/bidi.rb +8 -0
  54. data/lib/openxml/docx/properties/bold.rb +10 -0
  55. data/lib/openxml/docx/properties/boolean_property.rb +17 -0
  56. data/lib/openxml/docx/properties/border.rb +24 -0
  57. data/lib/openxml/docx/properties/caps.rb +8 -0
  58. data/lib/openxml/docx/properties/character_spacing.rb +10 -0
  59. data/lib/openxml/docx/properties/color.rb +13 -0
  60. data/lib/openxml/docx/properties/column.rb +18 -0
  61. data/lib/openxml/docx/properties/columns.rb +15 -0
  62. data/lib/openxml/docx/properties/complex_bold.rb +10 -0
  63. data/lib/openxml/docx/properties/complex_font_size.rb +10 -0
  64. data/lib/openxml/docx/properties/complex_italics.rb +10 -0
  65. data/lib/openxml/docx/properties/complex_property.rb +19 -0
  66. data/lib/openxml/docx/properties/complex_script_formatting.rb +10 -0
  67. data/lib/openxml/docx/properties/compress_punctuation.rb +10 -0
  68. data/lib/openxml/docx/properties/conditional_formatting.rb +23 -0
  69. data/lib/openxml/docx/properties/container_property.rb +65 -0
  70. data/lib/openxml/docx/properties/contextual_spacing.rb +8 -0
  71. data/lib/openxml/docx/properties/div_id.rb +8 -0
  72. data/lib/openxml/docx/properties/document_grid.rb +22 -0
  73. data/lib/openxml/docx/properties/double_strikethrough.rb +10 -0
  74. data/lib/openxml/docx/properties/east_asian_layout.rb +22 -0
  75. data/lib/openxml/docx/properties/effect.rb +13 -0
  76. data/lib/openxml/docx/properties/emboss.rb +8 -0
  77. data/lib/openxml/docx/properties/emphasis.rb +14 -0
  78. data/lib/openxml/docx/properties/expansion.rb +20 -0
  79. data/lib/openxml/docx/properties/font.rb +34 -0
  80. data/lib/openxml/docx/properties/font_size.rb +10 -0
  81. data/lib/openxml/docx/properties/form_protection.rb +9 -0
  82. data/lib/openxml/docx/properties/frame.rb +59 -0
  83. data/lib/openxml/docx/properties/hidden_style.rb +9 -0
  84. data/lib/openxml/docx/properties/hidden_text.rb +10 -0
  85. data/lib/openxml/docx/properties/highlight.rb +13 -0
  86. data/lib/openxml/docx/properties/imprint.rb +8 -0
  87. data/lib/openxml/docx/properties/indentation.rb +18 -0
  88. data/lib/openxml/docx/properties/integer_property.rb +17 -0
  89. data/lib/openxml/docx/properties/italics.rb +10 -0
  90. data/lib/openxml/docx/properties/keep_lines.rb +8 -0
  91. data/lib/openxml/docx/properties/keep_next.rb +8 -0
  92. data/lib/openxml/docx/properties/kerning.rb +10 -0
  93. data/lib/openxml/docx/properties/kinsoku.rb +8 -0
  94. data/lib/openxml/docx/properties/language.rb +21 -0
  95. data/lib/openxml/docx/properties/latent_styles.rb +23 -0
  96. data/lib/openxml/docx/properties/latent_styles_exception.rb +21 -0
  97. data/lib/openxml/docx/properties/line_numbering.rb +23 -0
  98. data/lib/openxml/docx/properties/linked_style.rb +18 -0
  99. data/lib/openxml/docx/properties/manual_width.rb +13 -0
  100. data/lib/openxml/docx/properties/math.rb +10 -0
  101. data/lib/openxml/docx/properties/mirror_indent.rb +8 -0
  102. data/lib/openxml/docx/properties/next_style.rb +17 -0
  103. data/lib/openxml/docx/properties/no_proof.rb +8 -0
  104. data/lib/openxml/docx/properties/numbering.rb +22 -0
  105. data/lib/openxml/docx/properties/on_off_property.rb +17 -0
  106. data/lib/openxml/docx/properties/outline.rb +8 -0
  107. data/lib/openxml/docx/properties/outline_level.rb +10 -0
  108. data/lib/openxml/docx/properties/overflow_punctuation.rb +10 -0
  109. data/lib/openxml/docx/properties/page_borders.rb +61 -0
  110. data/lib/openxml/docx/properties/page_break_before.rb +8 -0
  111. data/lib/openxml/docx/properties/page_margins.rb +17 -0
  112. data/lib/openxml/docx/properties/page_numbering.rb +89 -0
  113. data/lib/openxml/docx/properties/page_size.rb +23 -0
  114. data/lib/openxml/docx/properties/paragraph_borders.rb +45 -0
  115. data/lib/openxml/docx/properties/paragraph_style.rb +10 -0
  116. data/lib/openxml/docx/properties/parent_style.rb +17 -0
  117. data/lib/openxml/docx/properties/personal.rb +8 -0
  118. data/lib/openxml/docx/properties/personal_compose.rb +8 -0
  119. data/lib/openxml/docx/properties/personal_reply.rb +8 -0
  120. data/lib/openxml/docx/properties/phonetic_guide_alignment.rb +15 -0
  121. data/lib/openxml/docx/properties/phonetic_guide_base_font_size.rb +10 -0
  122. data/lib/openxml/docx/properties/phonetic_guide_font_size.rb +10 -0
  123. data/lib/openxml/docx/properties/phonetic_guide_font_size_raise.rb +10 -0
  124. data/lib/openxml/docx/properties/phonetic_guide_language.rb +19 -0
  125. data/lib/openxml/docx/properties/position.rb +8 -0
  126. data/lib/openxml/docx/properties/positive_integer_property.rb +17 -0
  127. data/lib/openxml/docx/properties/primary_style.rb +9 -0
  128. data/lib/openxml/docx/properties/right_to_left.rb +10 -0
  129. data/lib/openxml/docx/properties/rtl_gutter.rb +8 -0
  130. data/lib/openxml/docx/properties/run_style.rb +10 -0
  131. data/lib/openxml/docx/properties/section_type.rb +15 -0
  132. data/lib/openxml/docx/properties/semi_hidden.rb +8 -0
  133. data/lib/openxml/docx/properties/shading.rb +64 -0
  134. data/lib/openxml/docx/properties/shadow.rb +8 -0
  135. data/lib/openxml/docx/properties/small_caps.rb +8 -0
  136. data/lib/openxml/docx/properties/snap_to_grid.rb +8 -0
  137. data/lib/openxml/docx/properties/spacing.rb +25 -0
  138. data/lib/openxml/docx/properties/spec_vanish.rb +8 -0
  139. data/lib/openxml/docx/properties/strikethrough.rb +10 -0
  140. data/lib/openxml/docx/properties/string_property.rb +17 -0
  141. data/lib/openxml/docx/properties/style.rb +17 -0
  142. data/lib/openxml/docx/properties/style_aliases.rb +9 -0
  143. data/lib/openxml/docx/properties/style_auto_redefinition.rb +9 -0
  144. data/lib/openxml/docx/properties/style_lock.rb +9 -0
  145. data/lib/openxml/docx/properties/style_name.rb +10 -0
  146. data/lib/openxml/docx/properties/supress_auto_hyphens.rb +8 -0
  147. data/lib/openxml/docx/properties/supress_line_numbers.rb +8 -0
  148. data/lib/openxml/docx/properties/supress_overlap.rb +8 -0
  149. data/lib/openxml/docx/properties/tab.rb +71 -0
  150. data/lib/openxml/docx/properties/tabs.rb +10 -0
  151. data/lib/openxml/docx/properties/text_alignment.rb +13 -0
  152. data/lib/openxml/docx/properties/text_direction.rb +13 -0
  153. data/lib/openxml/docx/properties/textbox_tight_wrap.rb +13 -0
  154. data/lib/openxml/docx/properties/toggle_property.rb +17 -0
  155. data/lib/openxml/docx/properties/ui_priority.rb +8 -0
  156. data/lib/openxml/docx/properties/underline.rb +24 -0
  157. data/lib/openxml/docx/properties/unhide_when_used.rb +8 -0
  158. data/lib/openxml/docx/properties/value_property.rb +31 -0
  159. data/lib/openxml/docx/properties/vertical_alignment.rb +14 -0
  160. data/lib/openxml/docx/properties/vertical_text_alignment.rb +14 -0
  161. data/lib/openxml/docx/properties/web_hidden.rb +8 -0
  162. data/lib/openxml/docx/properties/widow_control.rb +8 -0
  163. data/lib/openxml/docx/properties/word_wrap.rb +8 -0
  164. data/lib/openxml/docx/property_builder.rb +74 -0
  165. data/lib/openxml/docx/section.rb +36 -0
  166. data/lib/openxml/docx/style.rb +84 -0
  167. data/lib/openxml/docx/version.rb +5 -0
  168. data/openxml-docx.gemspec +32 -0
  169. data/spec/elements/absolute_position_tab_spec.rb +84 -0
  170. data/spec/elements/bidi_embed_spec.rb +31 -0
  171. data/spec/elements/bidi_override_spec.rb +31 -0
  172. data/spec/elements/break_spec.rb +55 -0
  173. data/spec/elements/carriage_return_spec.rb +12 -0
  174. data/spec/elements/content_part_spec.rb +18 -0
  175. data/spec/elements/control_spec.rb +41 -0
  176. data/spec/elements/deleted_text_spec.rb +24 -0
  177. data/spec/elements/dirty_spec.rb +12 -0
  178. data/spec/elements/last_rendered_page_break_spec.rb +12 -0
  179. data/spec/elements/long_day_spec.rb +12 -0
  180. data/spec/elements/long_month_spec.rb +12 -0
  181. data/spec/elements/long_year_spec.rb +12 -0
  182. data/spec/elements/nonbreaking_hyphen_spec.rb +12 -0
  183. data/spec/elements/optional_hyphen_spec.rb +12 -0
  184. data/spec/elements/page_number_spec.rb +12 -0
  185. data/spec/elements/paragraph_spec.rb +33 -0
  186. data/spec/elements/ruby_spec.rb +66 -0
  187. data/spec/elements/run_spec.rb +15 -0
  188. data/spec/elements/short_day_spec.rb +12 -0
  189. data/spec/elements/short_month_spec.rb +12 -0
  190. data/spec/elements/short_year_spec.rb +12 -0
  191. data/spec/elements/symbol_spec.rb +34 -0
  192. data/spec/elements/tab_spec.rb +12 -0
  193. data/spec/elements/text_spec.rb +24 -0
  194. data/spec/package_spec.rb +36 -0
  195. data/spec/parts/document_spec.rb +95 -0
  196. data/spec/parts/settings_spec.rb +13 -0
  197. data/spec/parts/styles_spec.rb +27 -0
  198. data/spec/properties/alignment_spec.rb +58 -0
  199. data/spec/properties/auto_adjust_right_indent_spec.rb +23 -0
  200. data/spec/properties/auto_space_de_spec.rb +23 -0
  201. data/spec/properties/auto_space_dn_spec.rb +23 -0
  202. data/spec/properties/bidi_spec.rb +23 -0
  203. data/spec/properties/bold_spec.rb +23 -0
  204. data/spec/properties/border_spec.rb +156 -0
  205. data/spec/properties/caps_spec.rb +23 -0
  206. data/spec/properties/character_spacing_spec.rb +26 -0
  207. data/spec/properties/color_spec.rb +49 -0
  208. data/spec/properties/column_spec.rb +46 -0
  209. data/spec/properties/columns_spec.rb +174 -0
  210. data/spec/properties/complex_bold_spec.rb +23 -0
  211. data/spec/properties/complex_font_size_spec.rb +24 -0
  212. data/spec/properties/complex_italics_spec.rb +23 -0
  213. data/spec/properties/complex_script_formatting_spec.rb +23 -0
  214. data/spec/properties/compress_punctuation_spec.rb +23 -0
  215. data/spec/properties/conditional_formatting_spec.rb +160 -0
  216. data/spec/properties/contextual_spacing_spec.rb +23 -0
  217. data/spec/properties/div_id_spec.rb +17 -0
  218. data/spec/properties/document_grid_spec.rb +78 -0
  219. data/spec/properties/double_strikethrough_spec.rb +23 -0
  220. data/spec/properties/east_asian_layout_spec.rb +115 -0
  221. data/spec/properties/effect_spec.rb +43 -0
  222. data/spec/properties/emboss_spec.rb +23 -0
  223. data/spec/properties/emphasis_spec.rb +37 -0
  224. data/spec/properties/expansion_spec.rb +34 -0
  225. data/spec/properties/font_size_spec.rb +24 -0
  226. data/spec/properties/font_spec.rb +273 -0
  227. data/spec/properties/form_protection_spec.rb +23 -0
  228. data/spec/properties/frame_spec.rb +338 -0
  229. data/spec/properties/hidden_style_spec.rb +23 -0
  230. data/spec/properties/hidden_text_spec.rb +23 -0
  231. data/spec/properties/highlight_spec.rb +97 -0
  232. data/spec/properties/imprint_spec.rb +23 -0
  233. data/spec/properties/indentation_spec.rb +176 -0
  234. data/spec/properties/italics_spec.rb +23 -0
  235. data/spec/properties/keep_lines_spec.rb +23 -0
  236. data/spec/properties/keep_next_spec.rb +23 -0
  237. data/spec/properties/kerning_spec.rb +24 -0
  238. data/spec/properties/kinsoku_spec.rb +23 -0
  239. data/spec/properties/language_spec.rb +29 -0
  240. data/spec/properties/latent_styles_exception_spec.rb +83 -0
  241. data/spec/properties/latent_styles_spec.rb +336 -0
  242. data/spec/properties/line_numbering_spec.rb +96 -0
  243. data/spec/properties/linked_style_spec.rb +17 -0
  244. data/spec/properties/manual_width_spec.rb +55 -0
  245. data/spec/properties/math_spec.rb +23 -0
  246. data/spec/properties/mirror_indent_spec.rb +23 -0
  247. data/spec/properties/next_style_spec.rb +17 -0
  248. data/spec/properties/no_proof_spec.rb +23 -0
  249. data/spec/properties/numbering_spec.rb +46 -0
  250. data/spec/properties/outline_level_spec.rb +20 -0
  251. data/spec/properties/outline_spec.rb +23 -0
  252. data/spec/properties/overflow_punctuation_spec.rb +23 -0
  253. data/spec/properties/page_borders_spec.rb +129 -0
  254. data/spec/properties/page_break_before_spec.rb +23 -0
  255. data/spec/properties/page_margins_spec.rb +150 -0
  256. data/spec/properties/page_numbering_spec.rb +395 -0
  257. data/spec/properties/page_size_spec.rb +90 -0
  258. data/spec/properties/paper_source_spec.rb +56 -0
  259. data/spec/properties/paragraph_borders_spec.rb +66 -0
  260. data/spec/properties/paragraph_style_spec.rb +12 -0
  261. data/spec/properties/parent_style_spec.rb +17 -0
  262. data/spec/properties/personal_compose_spec.rb +23 -0
  263. data/spec/properties/personal_reply_spec.rb +23 -0
  264. data/spec/properties/personal_spec.rb +23 -0
  265. data/spec/properties/phonetic_guide_alignment_spec.rb +42 -0
  266. data/spec/properties/phonetic_guide_base_font_size_spec.rb +25 -0
  267. data/spec/properties/phonetic_guide_font_size_raise_spec.rb +25 -0
  268. data/spec/properties/phonetic_guide_font_size_spec.rb +25 -0
  269. data/spec/properties/phonetic_guide_language_spec.rb +12 -0
  270. data/spec/properties/position_spec.rb +26 -0
  271. data/spec/properties/primary_style_spec.rb +23 -0
  272. data/spec/properties/right_to_left_spec.rb +23 -0
  273. data/spec/properties/rtl_gutter_spec.rb +23 -0
  274. data/spec/properties/run_style_spec.rb +12 -0
  275. data/spec/properties/section_type_spec.rb +33 -0
  276. data/spec/properties/semi_hidden_spec.rb +23 -0
  277. data/spec/properties/shading_spec.rb +135 -0
  278. data/spec/properties/shadow_property_spec.rb +23 -0
  279. data/spec/properties/small_caps_spec.rb +22 -0
  280. data/spec/properties/snap_to_grid_spec.rb +23 -0
  281. data/spec/properties/spacing_spec.rb +159 -0
  282. data/spec/properties/spec_vanish_spec.rb +23 -0
  283. data/spec/properties/strikethrough_spec.rb +23 -0
  284. data/spec/properties/style_aliases_spec.rb +22 -0
  285. data/spec/properties/style_auto_redefinition_spec.rb +23 -0
  286. data/spec/properties/style_lock_spec.rb +23 -0
  287. data/spec/properties/style_name_spec.rb +17 -0
  288. data/spec/properties/supress_auto_hyphens_spec.rb +23 -0
  289. data/spec/properties/supress_line_numbers_spec.rb +23 -0
  290. data/spec/properties/supress_overlap_spec.rb +23 -0
  291. data/spec/properties/tab_spec.rb +45 -0
  292. data/spec/properties/tabs_spec.rb +39 -0
  293. data/spec/properties/text_alignment_spec.rb +33 -0
  294. data/spec/properties/text_direction_spec.rb +42 -0
  295. data/spec/properties/textbox_tight_wrap_spec.rb +33 -0
  296. data/spec/properties/ui_priority_spec.rb +22 -0
  297. data/spec/properties/underline_spec.rb +161 -0
  298. data/spec/properties/unhide_when_used_spec.rb +23 -0
  299. data/spec/properties/vertical_alignment_spec.rb +26 -0
  300. data/spec/properties/vertical_text_alignment_spec.rb +28 -0
  301. data/spec/properties/web_hidden_spec.rb +23 -0
  302. data/spec/properties/widow_control_spec.rb +23 -0
  303. data/spec/properties/word_wrap_spec.rb +23 -0
  304. data/spec/section_spec.rb +44 -0
  305. data/spec/spec_helper.rb +14 -0
  306. data/spec/style_spec.rb +108 -0
  307. data/spec/support/data/elements/break_element.xml +4 -0
  308. data/spec/support/data/elements/break_with_attributes_element.xml +4 -0
  309. data/spec/support/data/elements/paragraph_element.xml +8 -0
  310. data/spec/support/data/elements/paragraph_with_runs_element.xml +14 -0
  311. data/spec/support/data/elements/run_element.xml +8 -0
  312. data/spec/support/data/elements/symbol_element.xml +4 -0
  313. data/spec/support/data/elements/text_element.xml +4 -0
  314. data/spec/support/data/parts/content_types_part.xml +1 -0
  315. data/spec/support/data/parts/document_with_children_part.xml +1 -0
  316. data/spec/support/data/parts/document_with_multiple_sections_part.xml +24 -0
  317. data/spec/support/data/parts/document_with_one_section_part.xml +16 -0
  318. data/spec/support/data/parts/empty_document_part.xml +1 -0
  319. data/spec/support/data/parts/global_rels_part.xml +1 -0
  320. data/spec/support/data/parts/rels_part.xml +1 -0
  321. data/spec/support/data/parts/settings_part.xml +1 -0
  322. data/spec/support/data/parts/styles_part.xml +1 -0
  323. data/spec/support/data/parts/styles_with_custom_style_part.xml +20 -0
  324. data/spec/support/data/styles/character_styles.xml +15 -0
  325. data/spec/support/data/styles/paragraph_styles.xml +11 -0
  326. data/spec/support/element_test_macros.rb +193 -0
  327. data/spec/support/part_test_macros.rb +27 -0
  328. data/spec/support/property_test_macros.rb +116 -0
  329. data/spec/support/style_test_macros.rb +33 -0
  330. data/spec/support/value_property_test_macros.rb +69 -0
  331. metadata +486 -0
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SpecVanish do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :specVanish, name: "spec_vanish"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:specVanish/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Strikethrough do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :strike, name: "strikethrough"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:strike w:val=\"true\"/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::StyleAliases do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :aliases, name: "style_aliases", value: "Default"
7
+
8
+ with_value("AltStyleName") do
9
+ it_should_work
10
+ it_should_output "<w:aliases w:val=\"AltStyleName\"/>"
11
+ end
12
+
13
+ with_value("AltStyleName1,Alt Style Name 2") do
14
+ it_should_work
15
+ it_should_output "<w:aliases w:val=\"AltStyleName1,Alt Style Name 2\"/>"
16
+ end
17
+
18
+ with_value(5) do
19
+ it_should_not_work
20
+ end
21
+
22
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::StyleAutoRedefinition do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :autoRedefine, name: "style_auto_redefinition"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:autoRedefine/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::StyleLock do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :locked, name: "style_lock"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:locked/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,17 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::StyleName do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :name, name: "style_name", value: "Something"
7
+
8
+ with_value("Something") do
9
+ it_should_work
10
+ it_should_output "<w:name w:val=\"Something\"/>"
11
+ end
12
+
13
+ with_value("") do
14
+ it_should_not_work
15
+ end
16
+
17
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SupressAutoHyphens do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :supressAutoHyphens, name: "supress_auto_hyphens"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:supressAutoHyphens/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SupressLineNumbers do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :supressLineNumbers, name: "supress_line_numbers"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:supressLineNumbers/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SupressOverlap do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :supressOverlap, name: "supress_overlap"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:supressOverlap/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,45 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Tab do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :tab, name: "tab", value: [1234, :start]
7
+
8
+ context "when assigning bad position values, it" do
9
+ it "should raise an exception" do
10
+ expect { @instance = described_class.new(:bad, :start) }.to raise_error(ArgumentError)
11
+ end
12
+ end
13
+
14
+ context "when assigning bad type values, it" do
15
+ it "should raise an exception" do
16
+ expect { @instance = described_class.new(1234, :bad) }.to raise_error(ArgumentError)
17
+ end
18
+ end
19
+
20
+ context "when assigniing bad leader values, it" do
21
+ it "should raise an exception" do
22
+ expect { @instance = described_class.new(1234, :clear, :bad) }.to raise_error(ArgumentError)
23
+ end
24
+ end
25
+
26
+ context "with valid values, it" do
27
+ before(:each) do
28
+ @instance = described_class.new(1234, :start)
29
+ end
30
+
31
+ it "should return the right XML" do
32
+ expect(xml(instance)).to eq("<w:tab w:pos=\"1234\" w:val=\"start\"/>")
33
+ end
34
+ end
35
+
36
+ context "with valid values and a specified leader, it" do
37
+ before(:each) do
38
+ @instance = described_class.new(1234, :start, :dot)
39
+ end
40
+
41
+ it "should Return the right XML" do
42
+ expect(xml(instance)).to eq("<w:tab w:pos=\"1234\" w:val=\"start\" w:leader=\"dot\"/>")
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,39 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Tabs do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :tabs, name: "tabs"
7
+
8
+ context "when trying to add tabs, it" do
9
+ before(:each) do
10
+ @instance = described_class.new
11
+ end
12
+
13
+ it "should raise an exception if the tab to be added isn't a tab at all" do
14
+ expect { instance << [] }.to raise_error(ArgumentError)
15
+ end
16
+ end
17
+
18
+ context "when there are no tabs" do
19
+ before(:each) do
20
+ @instance = described_class.new
21
+ end
22
+
23
+ it "should not output any XML" do
24
+ expect(xml(instance)).to eq("")
25
+ end
26
+ end
27
+
28
+ context "when there are tabs" do
29
+ before(:each) do
30
+ @instance = described_class.new
31
+ instance << OpenXml::Docx::Properties::Tab.new(1234, :start)
32
+ instance << OpenXml::Docx::Properties::Tab.new(5678, :end, :heavy)
33
+ end
34
+
35
+ it "should output the correct XML" do
36
+ expect(xml(instance)).to eq("<w:tabs>\n <w:tab w:pos=\"1234\" w:val=\"start\"/>\n <w:tab w:pos=\"5678\" w:val=\"end\" w:leader=\"heavy\"/>\n </w:tabs>")
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::TextAlignment do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :textAlignment, name: "text_alignment", value: :auto
7
+
8
+ with_value(:auto) do
9
+ it_should_work
10
+ it_should_output "<w:textAlignment w:val=\"auto\"/>"
11
+ end
12
+
13
+ with_value(:baseline) do
14
+ it_should_work
15
+ it_should_output "<w:textAlignment w:val=\"baseline\"/>"
16
+ end
17
+
18
+ with_value(:bottom) do
19
+ it_should_work
20
+ it_should_output "<w:textAlignment w:val=\"bottom\"/>"
21
+ end
22
+
23
+ with_value(:center) do
24
+ it_should_work
25
+ it_should_output "<w:textAlignment w:val=\"center\"/>"
26
+ end
27
+
28
+ with_value(:top) do
29
+ it_should_work
30
+ it_should_output "<w:textAlignment w:val=\"top\"/>"
31
+ end
32
+
33
+ end
@@ -0,0 +1,42 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::TextDirection do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :textDirection, name: "text_direction", value: :lr
7
+
8
+ with_value(:lr) do
9
+ it_should_work
10
+ it_should_output "<w:textDirection w:val=\"lr\"/>"
11
+ end
12
+
13
+ with_value(:lrV) do
14
+ it_should_work
15
+ it_should_output "<w:textDirection w:val=\"lrV\"/>"
16
+ end
17
+
18
+ with_value(:rl) do
19
+ it_should_work
20
+ it_should_output "<w:textDirection w:val=\"rl\"/>"
21
+ end
22
+
23
+ with_value(:rlV) do
24
+ it_should_work
25
+ it_should_output "<w:textDirection w:val=\"rlV\"/>"
26
+ end
27
+
28
+ with_value(:tb) do
29
+ it_should_work
30
+ it_should_output "<w:textDirection w:val=\"tb\"/>"
31
+ end
32
+
33
+ with_value(:tbV) do
34
+ it_should_work
35
+ it_should_output "<w:textDirection w:val=\"tbV\"/>"
36
+ end
37
+
38
+ with_value(:left_to_right) do
39
+ it_should_not_work
40
+ end
41
+
42
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::TextboxTightWrap do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :textboxTightWrap, name: "textbox_tight_wrap", value: :none
7
+
8
+ with_value(:allLines) do
9
+ it_should_work
10
+ it_should_output "<w:textboxTightWrap w:val=\"allLines\"/>"
11
+ end
12
+
13
+ with_value(:firstAndLastLine) do
14
+ it_should_work
15
+ it_should_output "<w:textboxTightWrap w:val=\"firstAndLastLine\"/>"
16
+ end
17
+
18
+ with_value(:firstLineOnly) do
19
+ it_should_work
20
+ it_should_output "<w:textboxTightWrap w:val=\"firstLineOnly\"/>"
21
+ end
22
+
23
+ with_value(:lastLineOnly) do
24
+ it_should_work
25
+ it_should_output "<w:textboxTightWrap w:val=\"lastLineOnly\"/>"
26
+ end
27
+
28
+ with_value(:none) do
29
+ it_should_work
30
+ it_should_output "<w:textboxTightWrap w:val=\"none\"/>"
31
+ end
32
+
33
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::UiPriority do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :uiPriority, name: "ui_priority", value: 1
7
+
8
+ with_value(2) do
9
+ it_should_work
10
+ it_should_output "<w:uiPriority w:val=\"2\"/>"
11
+ end
12
+
13
+ with_value(-2) do
14
+ it_should_work
15
+ it_should_output "<w:uiPriority w:val=\"-2\"/>"
16
+ end
17
+
18
+ with_value(:low) do
19
+ it_should_not_work
20
+ end
21
+
22
+ end
@@ -0,0 +1,161 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Underline do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :u, name: "underline"
7
+
8
+ for_attribute(:color) do
9
+ with_value("FF34E1") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:u w:color=\"FF34E1\"/>"
12
+ end
13
+
14
+ with_value(:auto) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:u w:color=\"auto\"/>"
17
+ end
18
+
19
+ with_value(:nope) do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ for_attribute(:theme_color) do
25
+ with_value(:accent3) do
26
+ it_should_assign_successfully
27
+ it_should_output "<w:u w:themeColor=\"accent3\"/>"
28
+ end
29
+
30
+ with_value(:nope) do
31
+ it_should_raise_an_exception
32
+ end
33
+ end
34
+
35
+ for_attribute(:theme_shade) do
36
+ with_value("BF") do
37
+ it_should_assign_successfully
38
+ it_should_output "<w:u w:themeShade=\"BF\"/>"
39
+ end
40
+
41
+ with_value(:nope) do
42
+ it_should_raise_an_exception
43
+ end
44
+ end
45
+
46
+ for_attribute(:theme_tint) do
47
+ with_value("BF") do
48
+ it_should_assign_successfully
49
+ it_should_output "<w:u w:themeTint=\"BF\"/>"
50
+ end
51
+
52
+ with_value(:nope) do
53
+ it_should_raise_an_exception
54
+ end
55
+ end
56
+
57
+ for_attribute(:type) do
58
+ with_value(:dash) do
59
+ it_should_assign_successfully
60
+ it_should_output "<w:u w:val=\"dash\"/>"
61
+ end
62
+
63
+ with_value(:dashDotDotHeavy) do
64
+ it_should_assign_successfully
65
+ it_should_output "<w:u w:val=\"dashDotDotHeavy\"/>"
66
+ end
67
+
68
+ with_value(:dashDotHeavy) do
69
+ it_should_assign_successfully
70
+ it_should_output "<w:u w:val=\"dashDotHeavy\"/>"
71
+ end
72
+
73
+ with_value(:dashedHeavy) do
74
+ it_should_assign_successfully
75
+ it_should_output "<w:u w:val=\"dashedHeavy\"/>"
76
+ end
77
+
78
+ with_value(:dashLong) do
79
+ it_should_assign_successfully
80
+ it_should_output "<w:u w:val=\"dashLong\"/>"
81
+ end
82
+
83
+ with_value(:dashLongHeavy) do
84
+ it_should_assign_successfully
85
+ it_should_output "<w:u w:val=\"dashLongHeavy\"/>"
86
+ end
87
+
88
+ with_value(:dotDash) do
89
+ it_should_assign_successfully
90
+ it_should_output "<w:u w:val=\"dotDash\"/>"
91
+ end
92
+
93
+ with_value(:dotDotDash) do
94
+ it_should_assign_successfully
95
+ it_should_output "<w:u w:val=\"dotDotDash\"/>"
96
+ end
97
+
98
+ with_value(:dotted) do
99
+ it_should_assign_successfully
100
+ it_should_output "<w:u w:val=\"dotted\"/>"
101
+ end
102
+
103
+ with_value(:dottedHeavy) do
104
+ it_should_assign_successfully
105
+ it_should_output "<w:u w:val=\"dottedHeavy\"/>"
106
+ end
107
+
108
+ with_value(:double) do
109
+ it_should_assign_successfully
110
+ it_should_output "<w:u w:val=\"double\"/>"
111
+ end
112
+
113
+ with_value(:none) do
114
+ it_should_assign_successfully
115
+ it_should_output "<w:u w:val=\"none\"/>"
116
+ end
117
+
118
+ with_value(:single) do
119
+ it_should_assign_successfully
120
+ it_should_output "<w:u w:val=\"single\"/>"
121
+ end
122
+
123
+ with_value(:thick) do
124
+ it_should_assign_successfully
125
+ it_should_output "<w:u w:val=\"thick\"/>"
126
+ end
127
+
128
+ with_value(:wave) do
129
+ it_should_assign_successfully
130
+ it_should_output "<w:u w:val=\"wave\"/>"
131
+ end
132
+
133
+ with_value(:wavyDouble) do
134
+ it_should_assign_successfully
135
+ it_should_output "<w:u w:val=\"wavyDouble\"/>"
136
+ end
137
+
138
+ with_value(:wavyHeavy) do
139
+ it_should_assign_successfully
140
+ it_should_output "<w:u w:val=\"wavyHeavy\"/>"
141
+ end
142
+
143
+ with_value(:words) do
144
+ it_should_assign_successfully
145
+ it_should_output "<w:u w:val=\"words\"/>"
146
+ end
147
+
148
+ with_value(:triple) do
149
+ it_should_raise_an_exception
150
+ end
151
+ end
152
+
153
+ with_no_attributes_set do
154
+ it_should_output "", assign: false
155
+ end
156
+
157
+ with_these_attributes_set(color: "95B3D7", theme_color: :accent2, theme_tint: "99") do
158
+ it_should_output "<w:u w:color=\"95B3D7\" w:themeColor=\"accent2\" w:themeTint=\"99\"/>", assign: false
159
+ end
160
+
161
+ end