rocx 0.5.7 → 0.5.8

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 (236) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +11 -7
  4. data/Rakefile +3 -8
  5. data/lib/rocx/elements/base_container.rb +8 -4
  6. data/lib/rocx/elements/paragraph.rb +4 -4
  7. data/lib/rocx/elements/run.rb +40 -1
  8. data/lib/rocx/properties.rb +5 -0
  9. data/lib/rocx/properties/alignment.rb +4 -19
  10. data/lib/rocx/properties/attribute_builder.rb +8 -2
  11. data/lib/rocx/properties/auto_adjust_right_indent.rb +3 -9
  12. data/lib/rocx/properties/auto_space_de.rb +1 -8
  13. data/lib/rocx/properties/auto_space_dn.rb +1 -8
  14. data/lib/rocx/properties/base_property.rb +20 -11
  15. data/lib/rocx/properties/bold.rb +1 -4
  16. data/lib/rocx/properties/boolean_property.rb +1 -1
  17. data/lib/rocx/properties/border.rb +5 -13
  18. data/lib/rocx/properties/borders.rb +2 -8
  19. data/lib/rocx/properties/caps.rb +6 -0
  20. data/lib/rocx/properties/character_spacing.rb +8 -0
  21. data/lib/rocx/properties/color.rb +13 -0
  22. data/lib/rocx/properties/complex_bold.rb +8 -0
  23. data/lib/rocx/properties/complex_font_size.rb +8 -0
  24. data/lib/rocx/properties/complex_italics.rb +8 -0
  25. data/lib/rocx/properties/complex_property.rb +16 -0
  26. data/lib/rocx/properties/complex_script_formatting.rb +8 -0
  27. data/lib/rocx/properties/compress_punctuation.rb +1 -4
  28. data/lib/rocx/properties/conditional_formatting.rb +17 -56
  29. data/lib/rocx/properties/div_id.rb +1 -18
  30. data/lib/rocx/properties/double_strikethrough.rb +8 -0
  31. data/lib/rocx/properties/east_asian_layout.rb +22 -0
  32. data/lib/rocx/properties/effect.rb +11 -0
  33. data/lib/rocx/properties/emboss.rb +6 -0
  34. data/lib/rocx/properties/emphasis.rb +12 -0
  35. data/lib/rocx/properties/expansion.rb +18 -0
  36. data/lib/rocx/properties/font.rb +34 -0
  37. data/lib/rocx/properties/font_size.rb +8 -0
  38. data/lib/rocx/properties/frame.rb +5 -16
  39. data/lib/rocx/properties/hidden_text.rb +8 -0
  40. data/lib/rocx/properties/highlight.rb +11 -0
  41. data/lib/rocx/properties/imprint.rb +6 -0
  42. data/lib/rocx/properties/indentation.rb +11 -24
  43. data/lib/rocx/properties/integer_property.rb +15 -0
  44. data/lib/rocx/properties/italics.rb +1 -4
  45. data/lib/rocx/properties/kerning.rb +8 -0
  46. data/lib/rocx/properties/language.rb +20 -0
  47. data/lib/rocx/properties/manual_width.rb +12 -0
  48. data/lib/rocx/properties/math.rb +8 -0
  49. data/lib/rocx/properties/no_proof.rb +6 -0
  50. data/lib/rocx/properties/numbering.rb +4 -10
  51. data/lib/rocx/properties/on_off_property.rb +1 -1
  52. data/lib/rocx/properties/outline.rb +6 -0
  53. data/lib/rocx/properties/outline_level.rb +2 -17
  54. data/lib/rocx/properties/overflow_punctuation.rb +1 -8
  55. data/lib/rocx/properties/paragraph_style.rb +8 -0
  56. data/lib/rocx/properties/position.rb +6 -0
  57. data/lib/rocx/properties/positive_integer_property.rb +15 -0
  58. data/lib/rocx/properties/right_to_left.rb +8 -0
  59. data/lib/rocx/properties/run_style.rb +8 -0
  60. data/lib/rocx/properties/shading.rb +9 -20
  61. data/lib/rocx/properties/shadow.rb +6 -0
  62. data/lib/rocx/properties/small_caps.rb +6 -0
  63. data/lib/rocx/properties/spacing.rb +4 -17
  64. data/lib/rocx/properties/spec_vanish.rb +6 -0
  65. data/lib/rocx/properties/strikethrough.rb +8 -0
  66. data/lib/rocx/properties/style.rb +15 -0
  67. data/lib/rocx/properties/tab.rb +1 -9
  68. data/lib/rocx/properties/tabs.rb +1 -9
  69. data/lib/rocx/properties/text_alignment.rb +11 -0
  70. data/lib/rocx/properties/text_direction.rb +1 -5
  71. data/lib/rocx/properties/textbox_tight_wrap.rb +1 -5
  72. data/lib/rocx/properties/toggle_property.rb +1 -1
  73. data/lib/rocx/properties/underline.rb +24 -0
  74. data/lib/rocx/properties/value_property.rb +29 -0
  75. data/lib/rocx/properties/vertical_alignment.rb +3 -10
  76. data/lib/rocx/properties/web_hidden.rb +6 -0
  77. data/lib/rocx/version.rb +1 -1
  78. data/rocx.gemspec +1 -2
  79. data/spec/elements/break_spec.rb +47 -0
  80. data/spec/elements/paragraph_spec.rb +31 -0
  81. data/spec/elements/run_spec.rb +15 -0
  82. data/spec/elements/symbol_spec.rb +24 -0
  83. data/spec/elements/text_spec.rb +23 -0
  84. data/spec/package_spec.rb +48 -0
  85. data/spec/parts/content_types_spec.rb +32 -0
  86. data/spec/parts/document_spec.rb +32 -0
  87. data/spec/parts/global_rels_spec.rb +13 -0
  88. data/spec/parts/rels_spec.rb +42 -0
  89. data/spec/parts/settings_spec.rb +13 -0
  90. data/spec/parts/styles_spec.rb +27 -0
  91. data/spec/properties/alignment_spec.rb +58 -0
  92. data/spec/properties/auto_adjust_right_indent_spec.rb +23 -0
  93. data/spec/properties/auto_space_de_spec.rb +23 -0
  94. data/spec/properties/auto_space_dn_spec.rb +23 -0
  95. data/spec/properties/bidi_spec.rb +23 -0
  96. data/spec/properties/bold_spec.rb +23 -0
  97. data/spec/properties/border_spec.rb +156 -0
  98. data/spec/properties/borders_spec.rb +66 -0
  99. data/spec/properties/caps_spec.rb +23 -0
  100. data/spec/properties/character_spacing_spec.rb +26 -0
  101. data/spec/properties/color_spec.rb +49 -0
  102. data/spec/properties/complex_bold_spec.rb +23 -0
  103. data/spec/properties/complex_font_size_spec.rb +24 -0
  104. data/spec/properties/complex_italics_spec.rb +23 -0
  105. data/spec/properties/complex_script_formatting_spec.rb +23 -0
  106. data/spec/properties/compress_punctuation_spec.rb +23 -0
  107. data/spec/properties/conditional_formatting_spec.rb +160 -0
  108. data/spec/properties/contextual_spacing_spec.rb +23 -0
  109. data/spec/properties/div_id_spec.rb +17 -0
  110. data/spec/properties/double_strikethrough_spec.rb +23 -0
  111. data/spec/properties/east_asian_layout_spec.rb +115 -0
  112. data/spec/properties/effect_spec.rb +43 -0
  113. data/spec/properties/emboss_spec.rb +23 -0
  114. data/spec/properties/emphasis_spec.rb +37 -0
  115. data/spec/properties/expansion_spec.rb +34 -0
  116. data/spec/properties/font_size_spec.rb +24 -0
  117. data/spec/properties/font_spec.rb +273 -0
  118. data/spec/properties/frame_spec.rb +338 -0
  119. data/spec/properties/hidden_text_spec.rb +23 -0
  120. data/spec/properties/highlight_spec.rb +97 -0
  121. data/spec/properties/imprint_spec.rb +23 -0
  122. data/spec/properties/indentation_spec.rb +176 -0
  123. data/spec/properties/italics_spec.rb +23 -0
  124. data/spec/properties/keep_lines_spec.rb +23 -0
  125. data/spec/properties/keep_next_spec.rb +23 -0
  126. data/spec/properties/kerning_spec.rb +24 -0
  127. data/spec/properties/kinsoku_spec.rb +23 -0
  128. data/spec/properties/language_spec.rb +29 -0
  129. data/spec/properties/manual_width_spec.rb +55 -0
  130. data/spec/properties/math_spec.rb +23 -0
  131. data/spec/properties/mirror_indent_spec.rb +23 -0
  132. data/spec/properties/no_proof_spec.rb +23 -0
  133. data/spec/properties/numbering_spec.rb +46 -0
  134. data/spec/properties/outline_level_spec.rb +20 -0
  135. data/spec/properties/outline_spec.rb +23 -0
  136. data/spec/properties/overflow_punctuation_spec.rb +23 -0
  137. data/spec/properties/page_break_before_spec.rb +23 -0
  138. data/spec/properties/paragraph_style_spec.rb +12 -0
  139. data/spec/properties/position_spec.rb +26 -0
  140. data/spec/properties/right_to_left_spec.rb +23 -0
  141. data/spec/properties/run_style_spec.rb +12 -0
  142. data/spec/properties/shading_spec.rb +135 -0
  143. data/spec/properties/shadow_property_spec.rb +23 -0
  144. data/spec/properties/small_caps_spec.rb +22 -0
  145. data/spec/properties/snap_to_grid_spec.rb +23 -0
  146. data/spec/properties/spacing_spec.rb +159 -0
  147. data/spec/properties/spec_vanish_spec.rb +23 -0
  148. data/spec/properties/strikethrough_spec.rb +23 -0
  149. data/spec/properties/supress_auto_hyphens_spec.rb +23 -0
  150. data/spec/properties/supress_line_numbers_spec.rb +23 -0
  151. data/spec/properties/supress_overlap_spec.rb +23 -0
  152. data/spec/properties/tab_spec.rb +45 -0
  153. data/spec/properties/tabs_spec.rb +39 -0
  154. data/spec/properties/text_alignment_spec.rb +33 -0
  155. data/spec/properties/text_direction_spec.rb +42 -0
  156. data/spec/properties/textbox_tight_wrap_spec.rb +33 -0
  157. data/spec/properties/underline_spec.rb +161 -0
  158. data/spec/properties/vertical_alignment_spec.rb +26 -0
  159. data/spec/properties/web_hidden_spec.rb +23 -0
  160. data/spec/properties/widow_control_spec.rb +23 -0
  161. data/spec/properties/word_wrap_spec.rb +23 -0
  162. data/spec/spec_helper.rb +14 -0
  163. data/spec/style_spec.rb +34 -0
  164. data/{test → spec/support}/data/elements/break_element.xml +0 -0
  165. data/{test → spec/support}/data/elements/break_with_attributes_element.xml +0 -0
  166. data/{test → spec/support}/data/elements/paragraph_element.xml +0 -0
  167. data/{test → spec/support}/data/elements/paragraph_with_runs_element.xml +1 -1
  168. data/{test → spec/support}/data/elements/run_element.xml +0 -0
  169. data/{test → spec/support}/data/elements/symbol_element.xml +0 -0
  170. data/{test → spec/support}/data/elements/text_element.xml +0 -0
  171. data/{test → spec/support}/data/parts/content_types_part.xml +0 -0
  172. data/{test → spec/support}/data/parts/document_with_children_part.xml +0 -0
  173. data/{test → spec/support}/data/parts/empty_document_part.xml +0 -0
  174. data/{test → spec/support}/data/parts/global_rels_part.xml +0 -0
  175. data/{test → spec/support}/data/parts/rels_part.xml +0 -0
  176. data/{test → spec/support}/data/parts/settings_part.xml +0 -0
  177. data/{test → spec/support}/data/parts/styles_part.xml +0 -0
  178. data/{test → spec/support}/data/parts/styles_with_custom_style_part.xml +0 -0
  179. data/{test → spec/support}/data/styles/character_styles.xml +0 -0
  180. data/{test → spec/support}/data/styles/paragraph_styles.xml +0 -0
  181. data/spec/support/element_test_macros.rb +33 -0
  182. data/spec/support/part_test_macros.rb +27 -0
  183. data/spec/support/property_test_macros.rb +116 -0
  184. data/spec/support/style_test_macros.rb +33 -0
  185. data/spec/support/value_property_test_macros.rb +69 -0
  186. metadata +151 -133
  187. data/lib/rocx/elements/style.rb +0 -19
  188. data/test/elements/break_test.rb +0 -54
  189. data/test/elements/paragraph_test.rb +0 -37
  190. data/test/elements/run_test.rb +0 -18
  191. data/test/elements/symbol_test.rb +0 -23
  192. data/test/elements/text_test.rb +0 -26
  193. data/test/package_test.rb +0 -48
  194. data/test/parts/content_types_test.rb +0 -37
  195. data/test/parts/document_test.rb +0 -31
  196. data/test/parts/global_rels_test.rb +0 -13
  197. data/test/parts/rels_test.rb +0 -48
  198. data/test/parts/settings_test.rb +0 -13
  199. data/test/parts/styles_test.rb +0 -29
  200. data/test/properties/auto_adjust_right_indent_test.rb +0 -50
  201. data/test/properties/auto_space_de_test.rb +0 -50
  202. data/test/properties/auto_space_dn_test.rb +0 -50
  203. data/test/properties/bidi_test.rb +0 -50
  204. data/test/properties/bold_test.rb +0 -50
  205. data/test/properties/border_test.rb +0 -216
  206. data/test/properties/borders_test.rb +0 -95
  207. data/test/properties/compress_punctuation_test.rb +0 -50
  208. data/test/properties/conditional_formatting_test.rb +0 -46
  209. data/test/properties/contextual_spacing_test.rb +0 -50
  210. data/test/properties/div_id_test.rb +0 -38
  211. data/test/properties/frame_test.rb +0 -497
  212. data/test/properties/italics_test.rb +0 -50
  213. data/test/properties/keep_lines_test.rb +0 -50
  214. data/test/properties/keep_next_test.rb +0 -50
  215. data/test/properties/kinsoku_test.rb +0 -50
  216. data/test/properties/mirror_indent_test.rb +0 -50
  217. data/test/properties/numbering_test.rb +0 -86
  218. data/test/properties/outline_level_test.rb +0 -46
  219. data/test/properties/overflow_punctuation_test.rb +0 -50
  220. data/test/properties/page_break_before_test.rb +0 -50
  221. data/test/properties/shading_test.rb +0 -225
  222. data/test/properties/snap_to_grid_test.rb +0 -50
  223. data/test/properties/spacing_test.rb +0 -248
  224. data/test/properties/style_test.rb +0 -30
  225. data/test/properties/supress_auto_hyphens_test.rb +0 -50
  226. data/test/properties/supress_line_numbers_test.rb +0 -50
  227. data/test/properties/supress_overlap_test.rb +0 -50
  228. data/test/properties/tab_test.rb +0 -63
  229. data/test/properties/tabs_test.rb +0 -54
  230. data/test/properties/text_direction_test.rb +0 -100
  231. data/test/properties/textbox_tight_wrap_test.rb +0 -88
  232. data/test/properties/vertical_alignment_test.rb +0 -88
  233. data/test/properties/widow_control_test.rb +0 -50
  234. data/test/properties/word_wrap_test.rb +0 -50
  235. data/test/style_test.rb +0 -54
  236. data/test/test_helper.rb +0 -52
@@ -1,88 +0,0 @@
1
- require "test_helper"
2
-
3
- class VerticalAlignmentTest < PropertyTest
4
- attr_reader :vertical_alignment
5
-
6
- context "always" do
7
- setup do
8
- @vertical_alignment = VerticalAlignment.new(:auto)
9
- end
10
-
11
- should "have the right tag" do
12
- assert_equal :textAlignment, vertical_alignment.tag
13
- end
14
-
15
- should "have the right name" do
16
- assert_equal "vertical_alignment", vertical_alignment.name
17
- end
18
- end
19
-
20
- context "with valid values," do
21
- context "like :auto, it" do
22
- setup do
23
- @vertical_alignment = VerticalAlignment.new(:auto)
24
- end
25
-
26
- should "return the right XML" do
27
- assert_equal "<w:textAlignment w:val=\"auto\"/>", xml(vertical_alignment)
28
- end
29
- end
30
- end
31
-
32
- context "with valid values," do
33
- context "like :baseline, it" do
34
- setup do
35
- @vertical_alignment = VerticalAlignment.new(:baseline)
36
- end
37
-
38
- should "return the right XML" do
39
- assert_equal "<w:textAlignment w:val=\"baseline\"/>", xml(vertical_alignment)
40
- end
41
- end
42
- end
43
-
44
- context "with valid values," do
45
- context "like :bottom, it" do
46
- setup do
47
- @vertical_alignment = VerticalAlignment.new(:bottom)
48
- end
49
-
50
- should "return the right XML" do
51
- assert_equal "<w:textAlignment w:val=\"bottom\"/>", xml(vertical_alignment)
52
- end
53
- end
54
- end
55
-
56
- context "with valid values," do
57
- context "like :center, it" do
58
- setup do
59
- @vertical_alignment = VerticalAlignment.new(:center)
60
- end
61
-
62
- should "return the right XML" do
63
- assert_equal "<w:textAlignment w:val=\"center\"/>", xml(vertical_alignment)
64
- end
65
- end
66
- end
67
-
68
- context "with valid values," do
69
- context "like :top, it" do
70
- setup do
71
- @vertical_alignment = VerticalAlignment.new(:top)
72
- end
73
-
74
- should "return the right XML" do
75
- assert_equal "<w:textAlignment w:val=\"top\"/>", xml(vertical_alignment)
76
- end
77
- end
78
- end
79
-
80
- context "with invalid values, it" do
81
- should "raise an error" do
82
- assert_raises ArgumentError do
83
- @vertical_alignment = VerticalAlignment.new(:something_terrible)
84
- end
85
- end
86
- end
87
-
88
- end
@@ -1,50 +0,0 @@
1
- require "test_helper"
2
-
3
- class WidowControlTest < PropertyTest
4
- attr_reader :widow_control
5
-
6
- context "always" do
7
- setup do
8
- @widow_control = WidowControl.new(:on)
9
- end
10
-
11
- should "have the right tag" do
12
- assert_equal :widowControl, widow_control.tag
13
- end
14
-
15
- should "have the right name" do
16
- assert_equal "widow_control", widow_control.name
17
- end
18
- end
19
-
20
- context "when the value is on, it" do
21
- setup do
22
- @widow_control = WidowControl.new(:on)
23
- end
24
-
25
- should "return XML to that effect" do
26
- assert_equal "<w:widowControl w:val=\"on\"/>", xml(widow_control)
27
- end
28
- end
29
-
30
- context "when the value is off, it" do
31
- setup do
32
- @widow_control = WidowControl.new(:off)
33
- end
34
-
35
- should "return XML to that effect" do
36
- assert_equal "<w:widowControl w:val=\"off\"/>", xml(widow_control)
37
- end
38
- end
39
-
40
- context "when the value is nil, it" do
41
- setup do
42
- @widow_control = WidowControl.new(nil)
43
- end
44
-
45
- should "not return XML" do
46
- assert_equal "", xml(widow_control)
47
- end
48
- end
49
-
50
- end
@@ -1,50 +0,0 @@
1
- require "test_helper"
2
-
3
- class WordWrapTest < PropertyTest
4
- attr_reader :word_wrap
5
-
6
- context "always" do
7
- setup do
8
- @word_wrap = WordWrap.new(:on)
9
- end
10
-
11
- should "have the right tag" do
12
- assert_equal :wordWrap, word_wrap.tag
13
- end
14
-
15
- should "have the right name" do
16
- assert_equal "word_wrap", word_wrap.name
17
- end
18
- end
19
-
20
- context "when the value is on, it" do
21
- setup do
22
- @word_wrap = WordWrap.new(:on)
23
- end
24
-
25
- should "return XML to that effect" do
26
- assert_equal "<w:wordWrap w:val=\"on\"/>", xml(word_wrap)
27
- end
28
- end
29
-
30
- context "when the value is off, it" do
31
- setup do
32
- @word_wrap = WordWrap.new(:off)
33
- end
34
-
35
- should "return XML to that effect" do
36
- assert_equal "<w:wordWrap w:val=\"off\"/>", xml(word_wrap)
37
- end
38
- end
39
-
40
- context "when the value is nil, it" do
41
- setup do
42
- @word_wrap = WordWrap.new(nil)
43
- end
44
-
45
- should "not return XML" do
46
- assert_equal "", xml(word_wrap)
47
- end
48
- end
49
-
50
- end
@@ -1,54 +0,0 @@
1
- require "test_helper"
2
-
3
- class StyleTest < Test::Unit::TestCase
4
- attr_reader :style
5
-
6
- context "when given paragraph styles" do
7
- setup do
8
- paragraph_styles = {
9
- "w:ind" => {"w:firstLine" => "0", "w:left" => "0", "w:right" => "0"},
10
- "w:jc" => {"w:val" => "left"}
11
- }
12
- @style = Rocx::Style.new("coolStyle", "paragraph", {}, paragraph_styles)
13
- end
14
-
15
- should "generate the appropriate style XML" do
16
- xml = build_xml do |xml|
17
- style.build_xml(xml)
18
- end
19
- assert_equal style_xml("paragraph"), xml, "Expected the generated style XML to match"
20
- end
21
- end
22
-
23
- context "when given run styles" do
24
- setup do
25
- run_styles = {
26
- "w:rFonts" => {"w:ascii" => "Times New Roman", "w:cs" => "Times New Roman", "w:hAnsi" => "Times New Roman"},
27
- "w:color" => {"w:val" => "FF0000"},
28
- "w:sz" => {"w:val" => "20"},
29
- "w:b" => {"w:val" => "0"},
30
- "w:i" => {"w:val" => "0"},
31
- "w:u" => {"w:val" => "none"}
32
- }
33
- @style = Rocx::Style.new("anotherCoolStyle", "character", run_styles)
34
- end
35
-
36
- should "generate the appropriate style XML" do
37
- xml = build_xml do |xml|
38
- style.build_xml(xml)
39
- end
40
- assert_equal style_xml("character"), xml, "Expected the generated style XML to match"
41
- end
42
- end
43
-
44
- private
45
-
46
- def build_xml
47
- Nokogiri::XML::Builder.new do |xml|
48
- xml.styleFoo("xmlns:w" => "http://wnamespace.com") {
49
- yield xml
50
- }
51
- end.to_xml
52
- end
53
-
54
- end
@@ -1,52 +0,0 @@
1
- require "rocx"
2
- require "open_xml_package"
3
- require "test/unit"
4
- require "rr"
5
- require "shoulda-context"
6
- require "pry"
7
- require "timecop"
8
- require "turn"
9
- require "simplecov"
10
- SimpleCov.start
11
-
12
- def part_xml(part)
13
- File.read(File.join(File.dirname(__FILE__), "data", "parts", "#{part}_part.xml"))
14
- end
15
-
16
- def style_xml(part)
17
- File.read(File.join(File.dirname(__FILE__), "data", "styles", "#{part}_styles.xml"))
18
- end
19
-
20
- def element_xml(part)
21
- File.read(File.join(File.dirname(__FILE__), "data", "elements", "#{part}_element.xml"))
22
- end
23
-
24
- def build_xml
25
- Nokogiri::XML::Builder.new do |xml|
26
- xml.root("xmlns:w" => "http://wnamespace.org") {
27
- yield xml
28
- }
29
- end.to_xml
30
- end
31
-
32
- require "test_helper"
33
-
34
- class PropertyTest < Test::Unit::TestCase
35
- include Rocx::Properties
36
-
37
- private
38
-
39
- def xml(obj)
40
- doc = Nokogiri::XML::Builder.new do |xml|
41
- xml.root("xmlns:w" => "http://wnamespace.org") {
42
- obj.to_xml(xml)
43
- }
44
- end.to_xml
45
- doc_pattern =~ doc ? $1 : ""
46
- end
47
-
48
- def doc_pattern
49
- /<\?xml\sversion="1.0"\?>\n<root xmlns:w="http:\/\/wnamespace.org">\n\s+([^\s].+)\n<\/root>/m
50
- end
51
-
52
- end