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
@@ -0,0 +1,15 @@
1
+ module Rocx
2
+ module Properties
3
+ class IntegerProperty < ValueProperty
4
+
5
+ def valid?
6
+ value.is_a? Integer
7
+ end
8
+
9
+ def invalid_message
10
+ "Invalid #{name}: must be an integer"
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -1,10 +1,7 @@
1
1
  module Rocx
2
2
  module Properties
3
3
  class Italics < ToggleProperty
4
-
5
- def tag
6
- :i
7
- end
4
+ tag :i
8
5
 
9
6
  end
10
7
  end
@@ -0,0 +1,8 @@
1
+ module Rocx
2
+ module Properties
3
+ class Kerning < PositiveIntegerProperty
4
+ tag :kern
5
+
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,20 @@
1
+ module Rocx
2
+ module Properties
3
+ class Language < ComplexProperty
4
+ include AttributeBuilder
5
+
6
+ tag :lang
7
+ attribute :bidi, expects: :valid_language
8
+ attribute :east_asia, expects: :valid_language
9
+ attribute :latin, expects: :valid_language, displays_as: :val
10
+
11
+ private
12
+
13
+ def valid_language(value)
14
+ message = "Invalid #{name}: must be a language code (RFC 4646)"
15
+ raise ArgumentError, message unless value =~ /[a-z]{2}-[A-Z]{2}/
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ module Rocx
2
+ module Properties
3
+ class ManualWidth < ComplexProperty
4
+ include AttributeBuilder
5
+
6
+ attribute :id, expects: :integer
7
+ attribute :width, expects: :positive_integer, displays_as: :val
8
+
9
+ tag :fitText
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ module Rocx
2
+ module Properties
3
+ class Math < ToggleProperty
4
+ tag :oMath
5
+
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module Rocx
2
+ module Properties
3
+ class NoProof < BooleanProperty
4
+ end
5
+ end
6
+ end
@@ -1,21 +1,15 @@
1
1
  module Rocx
2
2
  module Properties
3
- class Numbering
3
+ class Numbering < ComplexProperty
4
4
  include AttributeBuilder
5
5
 
6
+ tag :numPr
7
+
6
8
  attribute :level, expects: :positive_integer, displays_as: :ilvl
7
9
  attribute :id, expects: :positive_integer, displays_as: :numId
8
10
 
9
- def name
10
- "numbering"
11
- end
12
-
13
- def tag
14
- :numPr
15
- end
16
-
17
11
  def to_xml(xml)
18
- return if xml_attributes.empty?
12
+ return unless render?
19
13
  xml["w"].public_send(tag) {
20
14
  xml_attributes.each do |tag_name, value|
21
15
  xml.public_send(tag_name, "w:val" => value)
@@ -1,6 +1,6 @@
1
1
  module Rocx
2
2
  module Properties
3
- class OnOffProperty < BaseProperty
3
+ class OnOffProperty < ValueProperty
4
4
 
5
5
  def ok_values
6
6
  [nil, :on, :off]
@@ -0,0 +1,6 @@
1
+ module Rocx
2
+ module Properties
3
+ class Outline < BooleanProperty
4
+ end
5
+ end
6
+ end
@@ -1,22 +1,7 @@
1
1
  module Rocx
2
2
  module Properties
3
- class OutlineLevel < BaseProperty
4
-
5
- def valid?
6
- value.is_a?(Integer) && value >= 0
7
- end
8
-
9
- def invalid_message
10
- "Invalid value for #{name}; acceptable values are integers greater than or equal to 0"
11
- end
12
-
13
- def tag
14
- :outlineLvl
15
- end
16
-
17
- def to_xml(xml)
18
- xml["w"].public_send(tag, "w:val" => value)
19
- end
3
+ class OutlineLevel < PositiveIntegerProperty
4
+ tag :outlineLvl
20
5
 
21
6
  end
22
7
  end
@@ -1,14 +1,7 @@
1
1
  module Rocx
2
2
  module Properties
3
3
  class OverflowPunctuation < BooleanProperty
4
-
5
- def name
6
- "overflow_punctuation"
7
- end
8
-
9
- def tag
10
- :overflowPunct
11
- end
4
+ tag :overflowPunct
12
5
 
13
6
  end
14
7
  end
@@ -0,0 +1,8 @@
1
+ module Rocx
2
+ module Properties
3
+ class ParagraphStyle < Style
4
+ tag :pStyle
5
+
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module Rocx
2
+ module Properties
3
+ class Position < IntegerProperty
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ module Rocx
2
+ module Properties
3
+ class PositiveIntegerProperty < IntegerProperty
4
+
5
+ def valid?
6
+ super && value >= 0
7
+ end
8
+
9
+ def invalid_message
10
+ "Invalid #{name}: must be a positive integer"
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ module Rocx
2
+ module Properties
3
+ class RightToLeft < ToggleProperty
4
+ tag :rtl
5
+
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Rocx
2
+ module Properties
3
+ class RunStyle < Style
4
+ tag :rStyle
5
+
6
+ end
7
+ end
8
+ end
@@ -1,8 +1,10 @@
1
1
  module Rocx
2
2
  module Properties
3
- class Shading
3
+ class Shading < ComplexProperty
4
4
  include AttributeBuilder
5
5
 
6
+ tag :shd
7
+
6
8
  VALID_SHADING_PATTERNS = %i(clear
7
9
  diagCross
8
10
  diagStripe
@@ -43,27 +45,14 @@ module Rocx
43
45
 
44
46
  attribute :color, expects: :hex_color
45
47
  attribute :fill, expects: :hex_color
46
- attribute :theme_color, expects: :valid_theme_color, displays_as: :themeColor
47
- attribute :theme_fill, expects: :valid_theme_color, displays_as: :themeFill
48
- attribute :theme_fill_shade, expects: :hex_digit, displays_as: :themeFillShade
49
- attribute :theme_fill_tint, expects: :hex_digit, displays_as: :themeFillTint
50
- attribute :theme_shade, expects: :hex_digit, displays_as: :themeShade
51
- attribute :theme_tint, expects: :hex_digit, displays_as: :themeTint
48
+ attribute :theme_color, expects: :valid_theme_color
49
+ attribute :theme_fill, expects: :valid_theme_color
50
+ attribute :theme_fill_shade, expects: :hex_digit
51
+ attribute :theme_fill_tint, expects: :hex_digit
52
+ attribute :theme_shade, expects: :hex_digit
53
+ attribute :theme_tint, expects: :hex_digit
52
54
  attribute :pattern, expects: :shading_pattern, displays_as: :val
53
55
 
54
- def name
55
- "shading"
56
- end
57
-
58
- def tag
59
- :shd
60
- end
61
-
62
- def to_xml(xml)
63
- return if xml_attributes.empty?
64
- xml["w"].public_send(tag, xml_attributes)
65
- end
66
-
67
56
  private
68
57
 
69
58
  def shading_pattern(value)
@@ -0,0 +1,6 @@
1
+ module Rocx
2
+ module Properties
3
+ class Shadow < BooleanProperty
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Rocx
2
+ module Properties
3
+ class SmallCaps < BooleanProperty
4
+ end
5
+ end
6
+ end
@@ -1,31 +1,18 @@
1
1
  module Rocx
2
2
  module Properties
3
- class Spacing
3
+ class Spacing < ComplexProperty
4
4
  include AttributeBuilder
5
5
 
6
6
  VALID_LINE_RULES = %i(atLeast auto exact)
7
7
 
8
8
  attribute :after, expects: :positive_integer
9
9
  attribute :after_auto, expects: :on_or_off, displays_as: :afterAutospacing
10
- attribute :after_lines, expects: :integer, displays_as: :afterLines
10
+ attribute :after_lines, expects: :integer
11
11
  attribute :before, expects: :positive_integer
12
12
  attribute :before_auto, expects: :on_or_off, displays_as: :beforeAutospacing
13
- attribute :before_lines, expects: :integer, displays_as: :beforeLines
13
+ attribute :before_lines, expects: :integer
14
14
  attribute :line, expects: :integer
15
- attribute :line_rule, expects: :valid_line_rule, displays_as: :lineRule
16
-
17
- def name
18
- "spacing"
19
- end
20
-
21
- def tag
22
- :spacing
23
- end
24
-
25
- def to_xml(xml)
26
- return if xml_attributes.empty?
27
- xml["w"].public_send(tag, xml_attributes)
28
- end
15
+ attribute :line_rule, expects: :valid_line_rule
29
16
 
30
17
  private
31
18
 
@@ -0,0 +1,6 @@
1
+ module Rocx
2
+ module Properties
3
+ class SpecVanish < ToggleProperty
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ module Rocx
2
+ module Properties
3
+ class Strikethrough < BooleanProperty
4
+ tag :strike
5
+
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module Rocx
2
+ module Properties
3
+ class Style < ValueProperty
4
+
5
+ def valid?
6
+ !value.nil?
7
+ end
8
+
9
+ def invalid_message
10
+ "Invalid #{name}: value must not be nil"
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -1,6 +1,6 @@
1
1
  module Rocx
2
2
  module Properties
3
- class Tab
3
+ class Tab < BaseProperty
4
4
  attr_reader :position, :type, :leader
5
5
 
6
6
  VALID_TYPES = %i(bar center clear decimal end num start)
@@ -31,14 +31,6 @@ module Rocx
31
31
  xml["w"].public_send(tag, xml_attributes)
32
32
  end
33
33
 
34
- def tag
35
- :tab
36
- end
37
-
38
- def name
39
- "tab"
40
- end
41
-
42
34
  private
43
35
 
44
36
  def xml_attributes
@@ -1,6 +1,6 @@
1
1
  module Rocx
2
2
  module Properties
3
- class Tabs
3
+ class Tabs < BaseProperty
4
4
  include Enumerable
5
5
 
6
6
  def initialize
@@ -28,14 +28,6 @@ module Rocx
28
28
  }
29
29
  end
30
30
 
31
- def name
32
- "tabs"
33
- end
34
-
35
- def tag
36
- :tabs
37
- end
38
-
39
31
  protected
40
32
 
41
33
  attr_reader :tabs
@@ -0,0 +1,11 @@
1
+ module Rocx
2
+ module Properties
3
+ class TextAlignment < ValueProperty
4
+
5
+ def ok_values
6
+ %i(auto baseline bottom center top)
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -1,15 +1,11 @@
1
1
  module Rocx
2
2
  module Properties
3
- class TextDirection < BaseProperty
3
+ class TextDirection < ValueProperty
4
4
 
5
5
  def ok_values
6
6
  %i(lr lrV rl rlV tb tbV)
7
7
  end
8
8
 
9
- def to_xml(xml)
10
- xml["w"].public_send(tag, "w:val" => value)
11
- end
12
-
13
9
  end
14
10
  end
15
11
  end
@@ -1,15 +1,11 @@
1
1
  module Rocx
2
2
  module Properties
3
- class TextboxTightWrap < BaseProperty
3
+ class TextboxTightWrap < ValueProperty
4
4
 
5
5
  def ok_values
6
6
  %i(allLines firstAndLastLine firstLineOnly lastLineOnly none)
7
7
  end
8
8
 
9
- def to_xml(xml)
10
- xml["w"].public_send(tag, "w:val" => value)
11
- end
12
-
13
9
  end
14
10
  end
15
11
  end