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,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PhoneticGuideLanguage do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :lid, name: "language", value: "ja-JP"
7
+
8
+ with_value("ja-JP") do
9
+ it_should_work
10
+ it_should_output "<w:lid w:val=\"ja-JP\"/>"
11
+ end
12
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Position do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :position, name: "position", value: 1
7
+
8
+ with_value(204) do
9
+ it_should_work
10
+ it_should_output "<w:position w:val=\"204\"/>"
11
+ end
12
+
13
+ with_value(-612) do
14
+ it_should_work
15
+ it_should_output "<w:position w:val=\"-612\"/>"
16
+ end
17
+
18
+ with_value(812.2) do
19
+ it_should_not_work
20
+ end
21
+
22
+ with_value(:something_else) do
23
+ it_should_not_work
24
+ end
25
+
26
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PrimaryStyle do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :qFormat, name: "primary_style"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:qFormat/>"
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::RightToLeft do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :rtl, name: "right_to_left"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:rtl/>"
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::RtlGutter do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :rtlGutter, name: "rtl_gutter"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:rtlGutter 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,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::RunStyle do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :rStyle, name: "run_style", value: "Nope"
7
+
8
+ with_value("Nope") do
9
+ it_should_work
10
+ it_should_output "<w:rStyle w:val=\"Nope\"/>"
11
+ end
12
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SectionType do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :type, name: "type", value: :oddPage
7
+
8
+ with_value(:continuous) do
9
+ it_should_work
10
+ it_should_output "<w:type w:val=\"continuous\"/>"
11
+ end
12
+
13
+ with_value(:evenPage) do
14
+ it_should_work
15
+ it_should_output "<w:type w:val=\"evenPage\"/>"
16
+ end
17
+
18
+ with_value(:nextColumn) do
19
+ it_should_work
20
+ it_should_output "<w:type w:val=\"nextColumn\"/>"
21
+ end
22
+
23
+ with_value(:nextPage) do
24
+ it_should_work
25
+ it_should_output "<w:type w:val=\"nextPage\"/>"
26
+ end
27
+
28
+ with_value(:oddPage) do
29
+ it_should_work
30
+ it_should_output "<w:type w:val=\"oddPage\"/>"
31
+ end
32
+
33
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SemiHidden do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :semiHidden, name: "semi_hidden", value: true
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:semiHidden/>"
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,135 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Shading do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :shd, name: "shading"
7
+
8
+ for_attribute(:color) do
9
+ with_value("4F81BD") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:shd w:color=\"4F81BD\"/>"
12
+ end
13
+
14
+ with_value(:auto) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:shd w:color=\"auto\"/>"
17
+ end
18
+
19
+ with_value("green") do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ for_attribute(:fill) do
25
+ with_value("4F81BD") do
26
+ it_should_assign_successfully
27
+ it_should_output "<w:shd w:fill=\"4F81BD\"/>"
28
+ end
29
+
30
+ with_value(:auto) do
31
+ it_should_assign_successfully
32
+ it_should_output "<w:shd w:fill=\"auto\"/>"
33
+ end
34
+
35
+ with_value("green") do
36
+ it_should_raise_an_exception
37
+ end
38
+ end
39
+
40
+ for_attribute(:theme_color) do
41
+ with_value(:hyperlink) do
42
+ it_should_assign_successfully
43
+ it_should_output "<w:shd w:themeColor=\"hyperlink\"/>"
44
+ end
45
+
46
+ with_value(:lens_flare) do
47
+ it_should_raise_an_exception
48
+ end
49
+ end
50
+
51
+ for_attribute(:theme_fill) do
52
+ with_value(:hyperlink) do
53
+ it_should_assign_successfully
54
+ it_should_output "<w:shd w:themeFill=\"hyperlink\"/>"
55
+ end
56
+
57
+ with_value(:lens_flare) do
58
+ it_should_raise_an_exception
59
+ end
60
+ end
61
+
62
+ for_attribute(:theme_fill_shade) do
63
+ with_value("BF") do
64
+ it_should_assign_successfully
65
+ it_should_output "<w:shd w:themeFillShade=\"BF\"/>"
66
+ end
67
+
68
+ with_value(:dark) do
69
+ it_should_raise_an_exception
70
+ end
71
+ end
72
+
73
+ for_attribute(:theme_fill_tint) do
74
+ with_value("BF") do
75
+ it_should_assign_successfully
76
+ it_should_output "<w:shd w:themeFillTint=\"BF\"/>"
77
+ end
78
+
79
+ with_value(:pink) do
80
+ it_should_raise_an_exception
81
+ end
82
+ end
83
+
84
+ for_attribute(:theme_shade) do
85
+ with_value("BF") do
86
+ it_should_assign_successfully
87
+ it_should_output "<w:shd w:themeShade=\"BF\"/>"
88
+ end
89
+
90
+ with_value(:dark) do
91
+ it_should_raise_an_exception
92
+ end
93
+ end
94
+
95
+ for_attribute(:theme_tint) do
96
+ with_value("BF") do
97
+ it_should_assign_successfully
98
+ it_should_output "<w:shd w:themeTint=\"BF\"/>"
99
+ end
100
+
101
+ with_value(:pink) do
102
+ it_should_raise_an_exception
103
+ end
104
+ end
105
+
106
+ for_attribute(:pattern) do
107
+ with_value(:pct90) do
108
+ it_should_assign_successfully
109
+ it_should_output "<w:shd w:val=\"pct90\"/>"
110
+ end
111
+
112
+ with_value(:solid) do
113
+ it_should_assign_successfully
114
+ it_should_output "<w:shd w:val=\"solid\"/>"
115
+ end
116
+
117
+ with_value(:vertStripe) do
118
+ it_should_assign_successfully
119
+ it_should_output "<w:shd w:val=\"vertStripe\"/>"
120
+ end
121
+
122
+ with_value(:somethingIJustMadeUp) do
123
+ it_should_raise_an_exception
124
+ end
125
+ end
126
+
127
+ with_no_attributes_set do
128
+ it_should_output "", assign: false
129
+ end
130
+
131
+ with_these_attributes_set(pattern: :pct20, theme_color: :accent6, theme_fill: :accent3) do
132
+ it_should_output "<w:shd w:themeColor=\"accent6\" w:themeFill=\"accent3\" w:val=\"pct20\"/>", assign: false
133
+ end
134
+
135
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Shadow do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :shadow, name: "shadow"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:shadow 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::SmallCaps do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :smallCaps, name: "small_caps"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:smallCaps 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
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::SnapToGrid do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :snapToGrid, name: "snap_to_grid"
7
+
8
+ with_value(:on) do
9
+ it_should_work
10
+ it_should_output "<w:snapToGrid w:val=\"on\"/>"
11
+ end
12
+
13
+ with_value(:off) do
14
+ it_should_work
15
+ it_should_output "<w:snapToGrid w:val=\"off\"/>"
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,159 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Spacing do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :spacing, name: "spacing"
7
+
8
+ for_attribute(:after) do
9
+ with_value(24) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:spacing w:after=\"24\"/>"
12
+ end
13
+
14
+ with_value(-24) do
15
+ it_should_raise_an_exception
16
+ end
17
+
18
+ with_value(:big) do
19
+ it_should_raise_an_exception
20
+ end
21
+ end
22
+
23
+ for_attribute(:after_auto) do
24
+ with_value(:on) do
25
+ it_should_assign_successfully
26
+ it_should_output "<w:spacing w:afterAutospacing=\"on\"/>"
27
+ end
28
+
29
+ with_value(:off) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:spacing w:afterAutospacing=\"off\"/>"
32
+ end
33
+
34
+ with_value(:on_and_off) do
35
+ it_should_raise_an_exception
36
+ end
37
+ end
38
+
39
+ for_attribute(:after_lines) do
40
+ with_value(24) do
41
+ it_should_assign_successfully
42
+ it_should_output "<w:spacing w:afterLines=\"24\"/>"
43
+ end
44
+
45
+ with_value(-24) do
46
+ it_should_assign_successfully
47
+ it_should_output "<w:spacing w:afterLines=\"-24\"/>"
48
+ end
49
+
50
+ with_value(2.56) do
51
+ it_should_raise_an_exception
52
+ end
53
+
54
+ with_value(:big) do
55
+ it_should_raise_an_exception
56
+ end
57
+ end
58
+
59
+ for_attribute(:before) do
60
+ with_value(24) do
61
+ it_should_assign_successfully
62
+ it_should_output "<w:spacing w:before=\"24\"/>"
63
+ end
64
+
65
+ with_value(-24) do
66
+ it_should_raise_an_exception
67
+ end
68
+
69
+ with_value(:big) do
70
+ it_should_raise_an_exception
71
+ end
72
+ end
73
+
74
+ for_attribute(:before_auto) do
75
+ with_value(:on) do
76
+ it_should_assign_successfully
77
+ it_should_output "<w:spacing w:beforeAutospacing=\"on\"/>"
78
+ end
79
+
80
+ with_value(:off) do
81
+ it_should_assign_successfully
82
+ it_should_output "<w:spacing w:beforeAutospacing=\"off\"/>"
83
+ end
84
+
85
+ with_value(:on_and_off) do
86
+ it_should_raise_an_exception
87
+ end
88
+ end
89
+
90
+ for_attribute(:before_lines) do
91
+ with_value(24) do
92
+ it_should_assign_successfully
93
+ it_should_output "<w:spacing w:beforeLines=\"24\"/>"
94
+ end
95
+
96
+ with_value(-24) do
97
+ it_should_assign_successfully
98
+ it_should_output "<w:spacing w:beforeLines=\"-24\"/>"
99
+ end
100
+
101
+ with_value(2.56) do
102
+ it_should_raise_an_exception
103
+ end
104
+
105
+ with_value(:big) do
106
+ it_should_raise_an_exception
107
+ end
108
+ end
109
+
110
+ for_attribute(:line) do
111
+ with_value(24) do
112
+ it_should_assign_successfully
113
+ it_should_output "<w:spacing w:line=\"24\"/>"
114
+ end
115
+
116
+ with_value(-24) do
117
+ it_should_assign_successfully
118
+ it_should_output "<w:spacing w:line=\"-24\"/>"
119
+ end
120
+
121
+ with_value(2.56) do
122
+ it_should_raise_an_exception
123
+ end
124
+
125
+ with_value(:big) do
126
+ it_should_raise_an_exception
127
+ end
128
+ end
129
+
130
+ for_attribute(:line_rule) do
131
+ with_value(:atLeast) do
132
+ it_should_assign_successfully
133
+ it_should_output "<w:spacing w:lineRule=\"atLeast\"/>"
134
+ end
135
+
136
+ with_value(:auto) do
137
+ it_should_assign_successfully
138
+ it_should_output "<w:spacing w:lineRule=\"auto\"/>"
139
+ end
140
+
141
+ with_value(:exact) do
142
+ it_should_assign_successfully
143
+ it_should_output "<w:spacing w:lineRule=\"exact\"/>"
144
+ end
145
+
146
+ with_value(:something) do
147
+ it_should_raise_an_exception
148
+ end
149
+ end
150
+
151
+ with_no_attributes_set do
152
+ it_should_output "", assign: false
153
+ end
154
+
155
+ with_these_attributes_set(line: 276, line_rule: :auto) do
156
+ it_should_output "<w:spacing w:line=\"276\" w:lineRule=\"auto\"/>", assign: false
157
+ end
158
+
159
+ end