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::Imprint do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :imprint, name: "imprint"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:imprint/>"
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,176 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Indentation do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :ind, name: "indentation"
7
+
8
+ for_attribute(:end) do
9
+ with_value(1220) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:ind w:end=\"1220\"/>"
12
+ end
13
+
14
+ with_value(-1220) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:ind w:end=\"-1220\"/>"
17
+ end
18
+
19
+ with_value(1220.3) do
20
+ it_should_raise_an_exception
21
+ end
22
+
23
+ with_value(:bad) do
24
+ it_should_raise_an_exception
25
+ end
26
+ end
27
+
28
+ for_attribute(:end_characters) do
29
+ with_value(1220) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:ind w:endChars=\"1220\"/>"
32
+ end
33
+
34
+ with_value(-1220) do
35
+ it_should_assign_successfully
36
+ it_should_output "<w:ind w:endChars=\"-1220\"/>"
37
+ end
38
+
39
+ with_value(1220.3) do
40
+ it_should_raise_an_exception
41
+ end
42
+
43
+ with_value(:bad) do
44
+ it_should_raise_an_exception
45
+ end
46
+ end
47
+
48
+ for_attribute(:first_line) do
49
+ with_value(1220) do
50
+ it_should_assign_successfully
51
+ it_should_output "<w:ind w:firstLine=\"1220\"/>"
52
+ end
53
+
54
+ with_value(-1220) do
55
+ it_should_assign_successfully
56
+ it_should_output "<w:ind w:firstLine=\"-1220\"/>"
57
+ end
58
+
59
+ with_value(1220.3) do
60
+ it_should_raise_an_exception
61
+ end
62
+
63
+ with_value(:bad) do
64
+ it_should_raise_an_exception
65
+ end
66
+ end
67
+
68
+ for_attribute(:first_line_characters) do
69
+ with_value(1220) do
70
+ it_should_assign_successfully
71
+ it_should_output "<w:ind w:firstLineChars=\"1220\"/>"
72
+ end
73
+
74
+ with_value(-1220) do
75
+ it_should_assign_successfully
76
+ it_should_output "<w:ind w:firstLineChars=\"-1220\"/>"
77
+ end
78
+
79
+ with_value(1220.3) do
80
+ it_should_raise_an_exception
81
+ end
82
+
83
+ with_value(:bad) do
84
+ it_should_raise_an_exception
85
+ end
86
+ end
87
+
88
+ for_attribute(:hanging) do
89
+ with_value(1220) do
90
+ it_should_assign_successfully
91
+ it_should_output "<w:ind w:hanging=\"1220\"/>"
92
+ end
93
+
94
+ with_value(-1220) do
95
+ it_should_assign_successfully
96
+ it_should_output "<w:ind w:hanging=\"-1220\"/>"
97
+ end
98
+
99
+ with_value(1220.3) do
100
+ it_should_raise_an_exception
101
+ end
102
+
103
+ with_value(:bad) do
104
+ it_should_raise_an_exception
105
+ end
106
+ end
107
+
108
+ for_attribute(:hanging_characters) do
109
+ with_value(1220) do
110
+ it_should_assign_successfully
111
+ it_should_output "<w:ind w:hangingChars=\"1220\"/>"
112
+ end
113
+
114
+ with_value(-1220) do
115
+ it_should_assign_successfully
116
+ it_should_output "<w:ind w:hangingChars=\"-1220\"/>"
117
+ end
118
+
119
+ with_value(1220.3) do
120
+ it_should_raise_an_exception
121
+ end
122
+
123
+ with_value(:bad) do
124
+ it_should_raise_an_exception
125
+ end
126
+ end
127
+
128
+ for_attribute(:start) do
129
+ with_value(1220) do
130
+ it_should_assign_successfully
131
+ it_should_output "<w:ind w:start=\"1220\"/>"
132
+ end
133
+
134
+ with_value(-1220) do
135
+ it_should_assign_successfully
136
+ it_should_output "<w:ind w:start=\"-1220\"/>"
137
+ end
138
+
139
+ with_value(1220.3) do
140
+ it_should_raise_an_exception
141
+ end
142
+
143
+ with_value(:bad) do
144
+ it_should_raise_an_exception
145
+ end
146
+ end
147
+
148
+ for_attribute(:start_characters) do
149
+ with_value(1220) do
150
+ it_should_assign_successfully
151
+ it_should_output "<w:ind w:startChars=\"1220\"/>"
152
+ end
153
+
154
+ with_value(-1220) do
155
+ it_should_assign_successfully
156
+ it_should_output "<w:ind w:startChars=\"-1220\"/>"
157
+ end
158
+
159
+ with_value(1220.3) do
160
+ it_should_raise_an_exception
161
+ end
162
+
163
+ with_value(:bad) do
164
+ it_should_raise_an_exception
165
+ end
166
+ end
167
+
168
+ with_no_attributes_set do
169
+ it_should_output "", assign: false
170
+ end
171
+
172
+ with_these_attributes_set(start_characters: 44, hanging: 1200) do
173
+ it_should_output "<w:ind w:hanging=\"1200\" w:startChars=\"44\"/>", assign: false
174
+ end
175
+
176
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Italics do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :i, name: "italics"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:i/>"
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::KeepLines do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :keepLines, name: "keep_lines"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:keepLines/>"
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::KeepNext do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :keepNext, name: "keep_next"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:keepNext/>"
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,24 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Kerning do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :kern, name: "kerning", value: 22
7
+
8
+ with_value(20) do
9
+ it_should_work
10
+ it_should_output "<w:kern w:val=\"20\"/>"
11
+ end
12
+
13
+ with_value(-20) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value(23.1) do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(:big) do
22
+ it_should_not_work
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Kinsoku do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :kinsoku, name: "kinsoku"
7
+
8
+ with_value(:on) do
9
+ it_should_work
10
+ it_should_output "<w:kinsoku w:val=\"on\"/>"
11
+ end
12
+
13
+ with_value(:off) do
14
+ it_should_work
15
+ it_should_output "<w:kinsoku 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,29 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Language do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :lang, name: "language"
7
+
8
+ for_attribute(:bidi) do
9
+ with_value("en-US") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:lang w:bidi=\"en-US\"/>"
12
+ end
13
+ end
14
+
15
+ for_attribute(:east_asia) do
16
+ with_value("ko-KR") do
17
+ it_should_assign_successfully
18
+ it_should_output "<w:lang w:eastAsia=\"ko-KR\"/>"
19
+ end
20
+ end
21
+
22
+ for_attribute(:latin) do
23
+ with_value("fr-CA") do
24
+ it_should_assign_successfully
25
+ it_should_output "<w:lang w:val=\"fr-CA\"/>"
26
+ end
27
+ end
28
+
29
+ end
@@ -0,0 +1,83 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::LatentStylesException do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :lsdException, name: "latent_styles_exception", value: "StyleName"
7
+
8
+ for_attribute(:locked) do
9
+ with_value(true) do
10
+ it_should_assign_successfully "StyleName"
11
+ it_should_output "<w:lsdException w:locked=\"true\" w:name=\"StyleName\"/>", "StyleName"
12
+ end
13
+
14
+ with_value(1) do
15
+ it_should_raise_an_exception
16
+ end
17
+ end
18
+
19
+ for_attribute(:style_name) do
20
+ with_value("NewStyleName") do
21
+ it_should_assign_successfully "StyleName"
22
+ it_should_output "<w:lsdException w:name=\"NewStyleName\"/>", "StyleName"
23
+ end
24
+
25
+ with_value(nil) do
26
+ it_should_raise_an_exception
27
+ end
28
+ end
29
+
30
+ for_attribute(:qFormat) do
31
+ with_value(true) do
32
+ it_should_assign_successfully "StyleName"
33
+ it_should_output "<w:lsdException w:name=\"StyleName\" w:qFormat=\"true\"/>", "StyleName"
34
+ end
35
+
36
+ with_value(1) do
37
+ it_should_raise_an_exception
38
+ end
39
+ end
40
+
41
+ for_attribute(:semi_hidden) do
42
+ with_value(true) do
43
+ it_should_assign_successfully "StyleName"
44
+ it_should_output "<w:lsdException w:name=\"StyleName\" w:semiHidden=\"true\"/>", "StyleName"
45
+ end
46
+
47
+ with_value(1) do
48
+ it_should_raise_an_exception
49
+ end
50
+ end
51
+
52
+ for_attribute(:ui_priority) do
53
+ with_value(1) do
54
+ it_should_assign_successfully "StyleName"
55
+ it_should_output "<w:lsdException w:name=\"StyleName\" w:uiPriority=\"1\"/>", "StyleName"
56
+ end
57
+
58
+ with_value(-1) do
59
+ it_should_assign_successfully "StyleName"
60
+ it_should_output "<w:lsdException w:name=\"StyleName\" w:uiPriority=\"-1\"/>", "StyleName"
61
+ end
62
+
63
+ with_value(1.3) do
64
+ it_should_raise_an_exception
65
+ end
66
+
67
+ with_value(:a_lot) do
68
+ it_should_raise_an_exception
69
+ end
70
+ end
71
+
72
+ for_attribute(:unhide_when_used) do
73
+ with_value(true) do
74
+ it_should_assign_successfully "StyleName"
75
+ it_should_output "<w:lsdException w:name=\"StyleName\" w:unhideWhenUsed=\"true\"/>", "StyleName"
76
+ end
77
+
78
+ with_value(1) do
79
+ it_should_raise_an_exception
80
+ end
81
+ end
82
+
83
+ end
@@ -0,0 +1,336 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::LatentStyles do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :latentStyles, name: "latent_styles"
7
+
8
+ context "when trying to add exceptions, it" do
9
+ before(:each) do
10
+ @instance = described_class.new
11
+ end
12
+
13
+ it "should raise an exception if the exception to be added isn't an exception at all" do
14
+ expect { instance << [] }.to raise_error(ArgumentError)
15
+ end
16
+ end
17
+
18
+ context "when there are no exceptions" do
19
+ before(:each) do
20
+ @instance = described_class.new
21
+ end
22
+
23
+ it "should still output its XML" do
24
+ expect(xml(instance)).to eq("<w:latentStyles/>")
25
+ end
26
+ end
27
+
28
+ context "when there are exceptions" do
29
+ before(:each) do
30
+ @instance = described_class.new
31
+ instance << OpenXml::Docx::Properties::LatentStylesException.new("StyleName1")
32
+ instance << OpenXml::Docx::Properties::LatentStylesException.new("StyleName2")
33
+ end
34
+
35
+ it "should output the correct XML" do
36
+ expect(xml(instance)).to eq("<w:latentStyles>\n <w:lsdException w:name=\"StyleName1\"/>\n <w:lsdException w:name=\"StyleName2\"/>\n </w:latentStyles>")
37
+ end
38
+ end
39
+
40
+ for_attribute(:count) do
41
+ before(:each) do
42
+ @instance = described_class.new
43
+ end
44
+
45
+ context "when the value is 1" do
46
+ before(:each) do
47
+ @value = 1
48
+ end
49
+
50
+ it "should accept the value" do
51
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
52
+ end
53
+
54
+ it "should output the correct value" do
55
+ instance.send("#{attribute}=", value)
56
+ expect(xml(instance)).to eq("<w:latentStyles w:count=\"1\"/>")
57
+ end
58
+ end
59
+
60
+ with_value(-1) do
61
+ it_should_raise_an_exception
62
+ end
63
+
64
+ with_value(1.3) do
65
+ it_should_raise_an_exception
66
+ end
67
+
68
+ with_value(:a_lot) do
69
+ it_should_raise_an_exception
70
+ end
71
+ end
72
+
73
+ for_attribute(:default_locked_state) do
74
+ before(:each) do
75
+ @instance = described_class.new
76
+ end
77
+
78
+ context "when the value is true" do
79
+ before(:each) do
80
+ @value = true
81
+ end
82
+
83
+ it "should accept the value" do
84
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
85
+ end
86
+
87
+ it "should output the correct value" do
88
+ instance.send("#{attribute}=", value)
89
+ expect(xml(instance)).to eq("<w:latentStyles w:defLockedState=\"true\"/>")
90
+ end
91
+ end
92
+ end
93
+
94
+ for_attribute(:default_qformat) do
95
+ before(:each) do
96
+ @instance = described_class.new
97
+ end
98
+
99
+ context "when the value is true" do
100
+ before(:each) do
101
+ @value = true
102
+ end
103
+
104
+ it "should accept the value" do
105
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
106
+ end
107
+
108
+ it "should output the correct value" do
109
+ instance.send("#{attribute}=", value)
110
+ expect(xml(instance)).to eq("<w:latentStyles w:defQFormat=\"true\"/>")
111
+ end
112
+ end
113
+ end
114
+
115
+ for_attribute(:default_semi_hidden) do
116
+ before(:each) do
117
+ @instance = described_class.new
118
+ end
119
+
120
+ context "when the value is true" do
121
+ before(:each) do
122
+ @value = true
123
+ end
124
+
125
+ it "should accept the value" do
126
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
127
+ end
128
+
129
+ it "should output the correct value" do
130
+ instance.send("#{attribute}=", value)
131
+ expect(xml(instance)).to eq("<w:latentStyles w:defSemiHidden=\"true\"/>")
132
+ end
133
+ end
134
+ end
135
+
136
+ for_attribute(:default_ui_priority) do
137
+ before(:each) do
138
+ @instance = described_class.new
139
+ end
140
+
141
+ context "when the value is 1" do
142
+ before(:each) do
143
+ @value = 1
144
+ end
145
+
146
+ it "should accept the value" do
147
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
148
+ end
149
+
150
+ it "should output the correct value" do
151
+ instance.send("#{attribute}=", value)
152
+ expect(xml(instance)).to eq("<w:latentStyles w:defUIPriority=\"1\"/>")
153
+ end
154
+ end
155
+
156
+ context "when the value is -1" do
157
+ before(:each) do
158
+ @value = -1
159
+ end
160
+
161
+ it "should accept the value" do
162
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
163
+ end
164
+
165
+ it "should output the correct value" do
166
+ instance.send("#{attribute}=", value)
167
+ expect(xml(instance)).to eq("<w:latentStyles w:defUIPriority=\"-1\"/>")
168
+ end
169
+ end
170
+
171
+ with_value(1.3) do
172
+ it_should_raise_an_exception
173
+ end
174
+
175
+ with_value(:a_lot) do
176
+ it_should_raise_an_exception
177
+ end
178
+ end
179
+
180
+ for_attribute(:default_unhide_when_used) do
181
+ before(:each) do
182
+ @instance = described_class.new
183
+ end
184
+
185
+ context "when the value is true" do
186
+ before(:each) do
187
+ @value = true
188
+ end
189
+
190
+ it "should accept the value" do
191
+ expect { instance.send("#{attribute}=", value) }.to_not raise_error
192
+ end
193
+
194
+ it "should output the correct value" do
195
+ instance.send("#{attribute}=", value)
196
+ expect(xml(instance)).to eq("<w:latentStyles w:defUnhideWhenUsed=\"true\"/>")
197
+ end
198
+ end
199
+ end
200
+
201
+ # for_attribute(:equal_width) do
202
+ # before(:each) do
203
+ # @instance = described_class.new
204
+ # @instance << OpenXml::Docx::Properties::Column.new(1, 1)
205
+ # end
206
+ #
207
+ # context "when the value is true" do
208
+ # before(:each) do
209
+ # @value = true
210
+ # end
211
+ #
212
+ # it "should accept the value" do
213
+ # expect { instance.send("#{attribute}=", value) }.to_not raise_error
214
+ # end
215
+ #
216
+ # it "should output the correct value" do
217
+ # instance.send("#{attribute}=", value)
218
+ # expect(xml(instance)).to eq("<w:cols w:equalWidth=\"true\">\n <w:col w:space=\"1\" w:w=\"1\"/>\n </w:cols>")
219
+ # end
220
+ # end
221
+ #
222
+ # for_attribute(:number) do
223
+ # before(:each) do
224
+ # @instance = described_class.new
225
+ # @instance << OpenXml::Docx::Properties::Column.new(1, 1)
226
+ # end
227
+ #
228
+ # context "when the value is 1" do
229
+ # before(:each) do
230
+ # @value = 1
231
+ # end
232
+ #
233
+ # it "should accept the value" do
234
+ # expect { instance.send("#{attribute}=", value) }.to_not raise_error
235
+ # end
236
+ #
237
+ # it "should output the correct value" do
238
+ # instance.send("#{attribute}=", value)
239
+ # expect(xml(instance)).to eq("<w:cols w:num=\"1\">\n <w:col w:space=\"1\" w:w=\"1\"/>\n </w:cols>")
240
+ # end
241
+ # end
242
+ #
243
+ # context "when the value is -1" do
244
+ # before(:each) do
245
+ # @value = -1
246
+ # end
247
+ #
248
+ # it "should accept the value" do
249
+ # expect { instance.send("#{attribute}=", value) }.to_not raise_error
250
+ # end
251
+ #
252
+ # it "should output the correct value" do
253
+ # instance.send("#{attribute}=", value)
254
+ # expect(xml(instance)).to eq("<w:cols w:num=\"-1\">\n <w:col w:space=\"1\" w:w=\"1\"/>\n </w:cols>")
255
+ # end
256
+ # end
257
+ #
258
+ # with_value(1.3) do
259
+ # it_should_raise_an_exception
260
+ # end
261
+ #
262
+ # with_value(:a_lot) do
263
+ # it_should_raise_an_exception
264
+ # end
265
+ # end
266
+ #
267
+ # for_attribute(:separator) do
268
+ # before(:each) do
269
+ # @instance = described_class.new
270
+ # @instance << OpenXml::Docx::Properties::Column.new(1, 1)
271
+ # end
272
+ #
273
+ # context "when the value is true" do
274
+ # before(:each) do
275
+ # @value = true
276
+ # end
277
+ #
278
+ # it "should accept the value" do
279
+ # expect { instance.send("#{attribute}=", value) }.to_not raise_error
280
+ # end
281
+ #
282
+ # it "should output the correct value" do
283
+ # instance.send("#{attribute}=", value)
284
+ # expect(xml(instance)).to eq("<w:cols w:sep=\"true\">\n <w:col w:space=\"1\" w:w=\"1\"/>\n </w:cols>")
285
+ # end
286
+ # end
287
+ # end
288
+ #
289
+ # for_attribute(:space) do
290
+ # before(:each) do
291
+ # @instance = described_class.new
292
+ # @instance << OpenXml::Docx::Properties::Column.new(1, 1)
293
+ # end
294
+ #
295
+ # context "when the value is 1" do
296
+ # before(:each) do
297
+ # @value = 1
298
+ # end
299
+ #
300
+ # it "should accept the value" do
301
+ # expect { instance.send("#{attribute}=", value) }.to_not raise_error
302
+ # end
303
+ #
304
+ # it "should output the correct value" do
305
+ # instance.send("#{attribute}=", value)
306
+ # expect(xml(instance)).to eq("<w:cols w:space=\"1\">\n <w:col w:space=\"1\" w:w=\"1\"/>\n </w:cols>")
307
+ # end
308
+ # end
309
+ #
310
+ # context "when the value is -1" do
311
+ # before(:each) do
312
+ # @value = -1
313
+ # end
314
+ #
315
+ # it "should accept the value" do
316
+ # expect { instance.send("#{attribute}=", value) }.to_not raise_error
317
+ # end
318
+ #
319
+ # it "should output the correct value" do
320
+ # instance.send("#{attribute}=", value)
321
+ # expect(xml(instance)).to eq("<w:cols w:space=\"-1\">\n <w:col w:space=\"1\" w:w=\"1\"/>\n </w:cols>")
322
+ # end
323
+ # end
324
+ #
325
+ # with_value(1.3) do
326
+ # it_should_raise_an_exception
327
+ # end
328
+ #
329
+ # with_value(:a_lot) do
330
+ # it_should_raise_an_exception
331
+ # end
332
+ # end
333
+
334
+ # end
335
+
336
+ end