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,31 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::BidiEmbed do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :dir, name: "bidi_embed"
7
+
8
+ for_attribute(:direction) do
9
+ with_value(:rtl) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:dir w:val=\"rtl\"/>"
12
+ end
13
+
14
+ with_value(:ltr) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:dir w:val=\"ltr\"/>"
17
+ end
18
+ end
19
+
20
+ context "with children" do
21
+ before(:each) do
22
+ @instance = described_class.new
23
+ text = OpenXml::Docx::Elements::Text.new("Smucker's Preserves")
24
+ run = OpenXml::Docx::Elements::Run.new
25
+ run << text
26
+ instance << run
27
+ end
28
+
29
+ it_should_output "<w:dir>\n <w:r>\n <w:t>Smucker's Preserves</w:t>\n </w:r>\n </w:dir>", assign: false
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::BidiOverride do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :bdo, name: "bidi_override"
7
+
8
+ for_attribute(:direction) do
9
+ with_value(:rtl) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:bdo w:val=\"rtl\"/>"
12
+ end
13
+
14
+ with_value(:ltr) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:bdo w:val=\"ltr\"/>"
17
+ end
18
+ end
19
+
20
+ context "with children" do
21
+ before(:each) do
22
+ @instance = described_class.new
23
+ text = OpenXml::Docx::Elements::Text.new("Smucker's Preserves")
24
+ run = OpenXml::Docx::Elements::Run.new
25
+ run << text
26
+ instance << run
27
+ end
28
+
29
+ it_should_output "<w:bdo>\n <w:r>\n <w:t>Smucker's Preserves</w:t>\n </w:r>\n </w:bdo>", assign: false
30
+ end
31
+ end
@@ -0,0 +1,55 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::Break do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :br, name: "break"
7
+
8
+ for_attribute(:clear) do
9
+ with_value(:all) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:br w:clear=\"all\"/>"
12
+ end
13
+
14
+ with_value(:left) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:br w:clear=\"left\"/>"
17
+ end
18
+
19
+ with_value(:none) do
20
+ it_should_assign_successfully
21
+ it_should_output "<w:br w:clear=\"none\"/>"
22
+ end
23
+
24
+ with_value(:right) do
25
+ it_should_assign_successfully
26
+ it_should_output "<w:br w:clear=\"right\"/>"
27
+ end
28
+
29
+ with_value(:somethingElse) do
30
+ it_should_raise_an_exception
31
+ end
32
+ end
33
+
34
+ for_attribute(:type) do
35
+ with_value(:column) do
36
+ it_should_assign_successfully
37
+ it_should_output "<w:br w:type=\"column\"/>"
38
+ end
39
+
40
+ with_value(:page) do
41
+ it_should_assign_successfully
42
+ it_should_output "<w:br w:type=\"page\"/>"
43
+ end
44
+
45
+ with_value(:textWrapping) do
46
+ it_should_assign_successfully
47
+ it_should_output "<w:br w:type=\"textWrapping\"/>"
48
+ end
49
+
50
+ with_value(:somethingElse) do
51
+ it_should_raise_an_exception
52
+ end
53
+ end
54
+
55
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::CarriageReturn do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :cr, name: "carriage_return"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:cr/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::ContentPart do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :contentPart, name: "content_part"
7
+
8
+ for_attribute(:id) do
9
+ with_value("rId8") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:contentPart r:id=\"rId8\"/>"
12
+ end
13
+
14
+ with_value("") do
15
+ it_should_raise_an_exception
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,41 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::Control do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :control, name: "control"
7
+
8
+ for_attribute(:id) do
9
+ with_value("rId5") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:control r:id=\"rId5\"/>"
12
+ end
13
+
14
+ with_value("") do
15
+ it_should_raise_an_exception
16
+ end
17
+ end
18
+
19
+ for_attribute(:unique_name) do
20
+ with_value("CheckBox1") do
21
+ it_should_assign_successfully
22
+ it_should_output "<w:control w:name=\"CheckBox1\"/>"
23
+ end
24
+
25
+ with_value("") do
26
+ it_should_raise_an_exception
27
+ end
28
+ end
29
+
30
+ for_attribute(:shape_id) do
31
+ with_value("_x0000_s1027") do
32
+ it_should_assign_successfully
33
+ it_should_output "<w:control w:shapeid=\"_x0000_s1027\"/>"
34
+ end
35
+
36
+ with_value("") do
37
+ it_should_raise_an_exception
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::DeletedText do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :del, name: "deleted_text"
7
+
8
+ for_attribute(:space) do
9
+ with_value(nil) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:del/>"
12
+ end
13
+
14
+ with_value(:preserve) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:del xml:space=\"preserve\"/>"
17
+ end
18
+
19
+ with_value(:the_final_frontier) do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::Dirty do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :dirty, name: "dirty"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:dirty/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::LastRenderedPageBreak do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :lastRenderedPageBreak, name: "last_rendered_page_break"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:lastRenderedPageBreak/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::LongDay do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :dayLong, name: "long_day"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:dayLong/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::LongMonth do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :monthLong, name: "long_month"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:monthLong/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::LongYear do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :yearLong, name: "long_year"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:yearLong/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::NonbreakingHyphen do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :noBreakHyphen, name: "nonbreaking_hyphen"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:noBreakHyphen/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::OptionalHyphen do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :softHyphen, name: "optional_hyphen"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:softHyphen/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::PageNumber do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :pgNum, name: "page_number"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:pgNum/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::Paragraph do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :p, name: "paragraph"
7
+
8
+ context "with runs" do
9
+ before(:each) do
10
+ @instance = described_class.new
11
+ instance.indentation.start = 720
12
+ instance.indentation.end = -1440
13
+ run = OpenXml::Docx::Elements::Run.new
14
+ run << OpenXml::Docx::Elements::Text.new("Hey Run 1")
15
+ instance << run
16
+ run = OpenXml::Docx::Elements::Run.new
17
+ run << OpenXml::Docx::Elements::Text.new("Hey Run 2")
18
+ instance << run
19
+ end
20
+
21
+ it_should_output_correct_xml node_xml: "paragraph_with_runs"
22
+ end
23
+
24
+ context "without runs" do
25
+ before(:each) do
26
+ @instance = described_class.new
27
+ instance.alignment = :center
28
+ end
29
+
30
+ it_should_output_correct_xml
31
+ end
32
+
33
+ end
@@ -0,0 +1,66 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::Ruby do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :ruby, name: "ruby"
7
+
8
+ it_should_have_value_property :font_size, as_instance_of: :phonetic_guide_font_size, with_value: 1
9
+ it_should_have_value_property :base_font_size, as_instance_of: :phonetic_guide_base_font_size, with_value: 1
10
+ it_should_have_value_property :font_size_raise, as_instance_of: :phonetic_guide_font_size_raise, with_value: 1
11
+ it_should_have_value_property :language, as_instance_of: :phonetic_guide_language, with_value: "ja-JP"
12
+ it_should_have_value_property :alignment, as_instance_of: :phonetic_guide_alignment, with_value: :left
13
+
14
+ context "for base text" do
15
+ before(:each) do
16
+ @instance = described_class.new
17
+ text = OpenXml::Docx::Elements::Text.new("Howdy Partner")
18
+ run = OpenXml::Docx::Elements::Run.new
19
+ run << text
20
+ instance.base = run
21
+ end
22
+
23
+ it_should_output "<w:ruby>\n <w:rt/>\n <w:rubyBase>\n <w:r>\n <w:t>Howdy Partner</w:t>\n </w:r>\n </w:rubyBase>\n </w:ruby>", assign: false
24
+ end
25
+
26
+ context "for base text and ruby text" do
27
+ before(:each) do
28
+ @instance = described_class.new
29
+ text = OpenXml::Docx::Elements::Text.new("東̄")
30
+ run = OpenXml::Docx::Elements::Run.new
31
+ run.bold = true
32
+ run << text
33
+ instance.base = run
34
+
35
+ text = OpenXml::Docx::Elements::Text.new("tō")
36
+ run = OpenXml::Docx::Elements::Run.new
37
+ run.bold = true
38
+ run << text
39
+ instance.ruby = run
40
+ end
41
+
42
+ it_should_output "<w:ruby>\n <w:rt>\n <w:r>\n <w:rPr>\n <w:b/>\n </w:rPr>\n <w:t>to&#x304;</w:t>\n </w:r>\n </w:rt>\n <w:rubyBase>\n <w:r>\n <w:rPr>\n <w:b/>\n </w:rPr>\n <w:t>&#x6771;&#x304;</w:t>\n </w:r>\n </w:rubyBase>\n </w:ruby>", assign: false
43
+ end
44
+
45
+ context "with base text, ruby text and properties set" do
46
+ before(:each) do
47
+ @instance = described_class.new
48
+ text = OpenXml::Docx::Elements::Text.new("東̄")
49
+ run = OpenXml::Docx::Elements::Run.new
50
+ run.bold = true
51
+ run << text
52
+ instance.base = run
53
+
54
+ text = OpenXml::Docx::Elements::Text.new("tō")
55
+ run = OpenXml::Docx::Elements::Run.new
56
+ run.bold = true
57
+ run << text
58
+ instance.ruby = run
59
+
60
+ instance.alignment = :left
61
+ end
62
+
63
+ it_should_output "<w:ruby>\n <w:rubyPr>\n <w:rubyAlign w:val=\"left\"/>\n </w:rubyPr>\n <w:rt>\n <w:r>\n <w:rPr>\n <w:b/>\n </w:rPr>\n <w:t>to&#x304;</w:t>\n </w:r>\n </w:rt>\n <w:rubyBase>\n <w:r>\n <w:rPr>\n <w:b/>\n </w:rPr>\n <w:t>&#x6771;&#x304;</w:t>\n </w:r>\n </w:rubyBase>\n </w:ruby>", assign: false
64
+ end
65
+
66
+ end
@@ -0,0 +1,15 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::Run do
4
+ include ElementTestMacros
5
+
6
+ context "after creation" do
7
+ before(:each) do
8
+ @instance = described_class.new
9
+ instance.italics = true
10
+ end
11
+
12
+ it_should_output_correct_xml
13
+ end
14
+
15
+ end