shoes-swt 4.0.0.pre2 → 4.0.0.pre3

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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -200
  3. data/Rakefile +1 -0
  4. data/bin/shoes-swt +11 -0
  5. data/lib/shoes/swt.rb +5 -2
  6. data/lib/shoes/swt/animation.rb +2 -2
  7. data/lib/shoes/swt/app.rb +45 -50
  8. data/lib/shoes/swt/arc.rb +7 -7
  9. data/lib/shoes/swt/background.rb +1 -1
  10. data/lib/shoes/swt/border.rb +1 -2
  11. data/lib/shoes/swt/click_listener.rb +70 -0
  12. data/lib/shoes/swt/color.rb +5 -5
  13. data/lib/shoes/swt/common/clickable.rb +2 -53
  14. data/lib/shoes/swt/common/fill.rb +1 -1
  15. data/lib/shoes/swt/common/painter.rb +7 -7
  16. data/lib/shoes/swt/common/painter_updates_position.rb +2 -2
  17. data/lib/shoes/swt/common/remove.rb +2 -3
  18. data/lib/shoes/swt/common/resource.rb +1 -1
  19. data/lib/shoes/swt/common/selection_listener.rb +14 -14
  20. data/lib/shoes/swt/common/stroke.rb +1 -2
  21. data/lib/shoes/swt/common/update_position.rb +1 -1
  22. data/lib/shoes/swt/dialog.rb +3 -45
  23. data/lib/shoes/swt/disposed_protection.rb +1 -1
  24. data/lib/shoes/swt/download.rb +0 -1
  25. data/lib/shoes/swt/font.rb +4 -4
  26. data/lib/shoes/swt/generate-backend.rb +9 -0
  27. data/lib/shoes/swt/gradient.rb +17 -16
  28. data/lib/shoes/swt/image.rb +3 -5
  29. data/lib/shoes/swt/image_pattern.rb +2 -2
  30. data/lib/shoes/swt/input_box.rb +3 -3
  31. data/lib/shoes/swt/key_listener.rb +6 -6
  32. data/lib/shoes/swt/line.rb +4 -24
  33. data/lib/shoes/swt/link.rb +2 -2
  34. data/lib/shoes/swt/link_segment.rb +3 -3
  35. data/lib/shoes/swt/list_box.rb +4 -4
  36. data/lib/shoes/swt/mouse_move_listener.rb +6 -5
  37. data/lib/shoes/swt/oval.rb +2 -3
  38. data/lib/shoes/swt/packager.rb +82 -0
  39. data/lib/shoes/swt/progress.rb +2 -2
  40. data/lib/shoes/swt/radio.rb +0 -2
  41. data/lib/shoes/swt/radio_group.rb +54 -54
  42. data/lib/shoes/swt/rect_painter.rb +7 -7
  43. data/lib/shoes/swt/redrawing_aspect.rb +32 -34
  44. data/lib/shoes/swt/shape.rb +1 -1
  45. data/lib/shoes/swt/shoes_layout.rb +5 -2
  46. data/lib/shoes/swt/slot.rb +2 -3
  47. data/lib/shoes/swt/sound.rb +17 -22
  48. data/lib/shoes/swt/star.rb +30 -8
  49. data/lib/shoes/swt/swt_button.rb +3 -2
  50. data/lib/shoes/swt/text_block.rb +3 -3
  51. data/lib/shoes/swt/text_block/cursor_painter.rb +2 -2
  52. data/lib/shoes/swt/text_block/fitter.rb +5 -3
  53. data/lib/shoes/swt/text_block/painter.rb +9 -9
  54. data/lib/shoes/swt/text_block/text_font_factory.rb +3 -3
  55. data/lib/shoes/swt/text_block/text_segment.rb +9 -9
  56. data/lib/shoes/swt/text_block/text_segment_collection.rb +2 -0
  57. data/lib/shoes/swt/text_block/text_style_factory.rb +9 -3
  58. data/lib/shoes/swt/timer.rb +1 -1
  59. data/lib/shoes/swt/version.rb +1 -1
  60. data/shoes-swt.gemspec +7 -6
  61. data/spec/shoes/cli_spec.rb +2 -2
  62. data/spec/{swt_shoes → shoes/swt}/animation_spec.rb +1 -1
  63. data/spec/{swt_shoes → shoes/swt}/app_spec.rb +36 -3
  64. data/spec/{swt_shoes → shoes/swt}/arc_spec.rb +1 -1
  65. data/spec/{swt_shoes → shoes/swt}/background_spec.rb +1 -1
  66. data/spec/{swt_shoes → shoes/swt}/border_spec.rb +1 -1
  67. data/spec/{swt_shoes → shoes/swt}/button_spec.rb +1 -1
  68. data/spec/{swt_shoes → shoes/swt}/check_spec.rb +1 -1
  69. data/spec/shoes/swt/click_listener_spec.rb +162 -0
  70. data/spec/{swt_shoes → shoes/swt}/color_factory_spec.rb +1 -1
  71. data/spec/{swt_shoes → shoes/swt}/color_spec.rb +1 -1
  72. data/spec/{swt_shoes → shoes/swt}/common/painter_spec.rb +1 -1
  73. data/spec/{swt_shoes → shoes/swt}/common/remove_spec.rb +4 -11
  74. data/spec/{swt_shoes → shoes/swt}/configuration_spec.rb +1 -1
  75. data/spec/{swt_shoes → shoes/swt}/dialog_spec.rb +1 -7
  76. data/spec/{swt_shoes → shoes/swt}/disposed_protection_spec.rb +0 -0
  77. data/spec/{swt_shoes → shoes/swt}/flow_spec.rb +1 -1
  78. data/spec/{swt_shoes → shoes/swt}/font_spec.rb +1 -1
  79. data/spec/{swt_shoes → shoes/swt}/gradient_spec.rb +1 -1
  80. data/spec/{swt_shoes → shoes/swt}/image_pattern_spec.rb +1 -1
  81. data/spec/{swt_shoes → shoes/swt}/image_spec.rb +4 -3
  82. data/spec/{swt_shoes → shoes/swt}/input_box_spec.rb +1 -1
  83. data/spec/{swt_shoes → shoes/swt}/integration_spec.rb +1 -1
  84. data/spec/{swt_shoes → shoes/swt}/key_listener_spec.rb +1 -1
  85. data/spec/{swt_shoes → shoes/swt}/line_spec.rb +4 -8
  86. data/spec/{swt_shoes → shoes/swt}/link_segment_spec.rb +1 -1
  87. data/spec/{swt_shoes → shoes/swt}/link_spec.rb +3 -10
  88. data/spec/{swt_shoes → shoes/swt}/list_box_spec.rb +5 -3
  89. data/spec/{swt_shoes → shoes/swt}/minimal.png +0 -0
  90. data/spec/{swt_shoes → shoes/swt}/mouse_move_listener_spec.rb +1 -1
  91. data/spec/{swt_shoes → shoes/swt}/oval_spec.rb +1 -1
  92. data/spec/{swt_shoes → shoes/swt}/progress_spec.rb +1 -1
  93. data/spec/{swt_shoes → shoes/swt}/radio_group_spec.rb +1 -1
  94. data/spec/{swt_shoes → shoes/swt}/radio_spec.rb +1 -1
  95. data/spec/{swt_shoes → shoes/swt}/rect_painter_spec.rb +1 -1
  96. data/spec/{swt_shoes → shoes/swt}/rect_spec.rb +1 -1
  97. data/spec/{swt_shoes → shoes/swt}/shape_spec.rb +1 -1
  98. data/spec/{swt_shoes → shoes/swt}/shared_examples/button.rb +0 -0
  99. data/spec/shoes/swt/shared_examples/clickable.rb +13 -0
  100. data/spec/{swt_shoes → shoes/swt}/shared_examples/movable.rb +0 -0
  101. data/spec/{swt_shoes → shoes/swt}/shared_examples/paintable.rb +0 -0
  102. data/spec/{swt_shoes → shoes/swt}/shared_examples/painter.rb +0 -0
  103. data/spec/{swt_shoes → shoes/swt}/shared_examples/pattern.rb +0 -0
  104. data/spec/{swt_shoes → shoes/swt}/shared_examples/removable.rb +1 -3
  105. data/spec/{swt_shoes → shoes/swt}/shared_examples/swt_app_context.rb +11 -3
  106. data/spec/{swt_shoes → shoes/swt}/shared_examples/visibility.rb +0 -0
  107. data/spec/{swt_shoes → shoes/swt}/shell_control_listener_spec.rb +1 -1
  108. data/spec/{swt_shoes → shoes/swt}/slot_spec.rb +1 -1
  109. data/spec/{swt_shoes → shoes/swt}/spec_helper.rb +0 -1
  110. data/spec/{swt_shoes → shoes/swt}/star_spec.rb +1 -1
  111. data/spec/{swt_shoes → shoes/swt}/text_block/centered_text_segment_spec.rb +1 -1
  112. data/spec/{swt_shoes → shoes/swt}/text_block/cursor_painter_spec.rb +8 -4
  113. data/spec/{swt_shoes → shoes/swt}/text_block/fitter_spec.rb +5 -5
  114. data/spec/{swt_shoes → shoes/swt}/text_block/painter_spec.rb +1 -1
  115. data/spec/{swt_shoes → shoes/swt}/text_block/text_font_factory_spec.rb +1 -1
  116. data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_collection_spec.rb +7 -2
  117. data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_spec.rb +1 -1
  118. data/spec/{swt_shoes → shoes/swt}/text_block_spec.rb +2 -5
  119. data/spec/spec_helper.rb +7 -3
  120. metadata +132 -331
  121. data/CHANGELOG +0 -84
  122. data/Gemfile +0 -24
  123. data/Guardfile +0 -11
  124. data/manifests/common.rb +0 -34
  125. data/manifests/shoes-swt.rb +0 -29
  126. data/spec/code_coverage.rb +0 -14
  127. data/spec/shoes/animation_spec.rb +0 -65
  128. data/spec/shoes/app_spec.rb +0 -484
  129. data/spec/shoes/arc_spec.rb +0 -51
  130. data/spec/shoes/background_spec.rb +0 -53
  131. data/spec/shoes/border_spec.rb +0 -47
  132. data/spec/shoes/builtin_methods_spec.rb +0 -110
  133. data/spec/shoes/button_spec.rb +0 -44
  134. data/spec/shoes/check_spec.rb +0 -35
  135. data/spec/shoes/color_spec.rb +0 -408
  136. data/spec/shoes/common/inspect_spec.rb +0 -26
  137. data/spec/shoes/common/remove_spec.rb +0 -38
  138. data/spec/shoes/common/style_normalizer_spec.rb +0 -28
  139. data/spec/shoes/common/style_spec.rb +0 -147
  140. data/spec/shoes/configuration_spec.rb +0 -36
  141. data/spec/shoes/constants_spec.rb +0 -38
  142. data/spec/shoes/dialog_spec.rb +0 -163
  143. data/spec/shoes/dimension_spec.rb +0 -407
  144. data/spec/shoes/dimensions_spec.rb +0 -837
  145. data/spec/shoes/download_spec.rb +0 -142
  146. data/spec/shoes/flow_spec.rb +0 -133
  147. data/spec/shoes/font_spec.rb +0 -37
  148. data/spec/shoes/framework_learning_spec.rb +0 -30
  149. data/spec/shoes/gradient_spec.rb +0 -32
  150. data/spec/shoes/helpers/fake_element.rb +0 -17
  151. data/spec/shoes/helpers/inspect_helpers.rb +0 -5
  152. data/spec/shoes/helpers/sample17_helper.rb +0 -66
  153. data/spec/shoes/image_spec.rb +0 -49
  154. data/spec/shoes/images/shoe.jpg +0 -0
  155. data/spec/shoes/input_box_spec.rb +0 -80
  156. data/spec/shoes/integration_spec.rb +0 -20
  157. data/spec/shoes/internal_app_spec.rb +0 -141
  158. data/spec/shoes/keypress_spec.rb +0 -11
  159. data/spec/shoes/keyrelease_spec.rb +0 -12
  160. data/spec/shoes/line_spec.rb +0 -49
  161. data/spec/shoes/link_spec.rb +0 -105
  162. data/spec/shoes/list_box_spec.rb +0 -74
  163. data/spec/shoes/logger/ruby_spec.rb +0 -8
  164. data/spec/shoes/logger_spec.rb +0 -45
  165. data/spec/shoes/oval_spec.rb +0 -24
  166. data/spec/shoes/point_spec.rb +0 -71
  167. data/spec/shoes/progress_spec.rb +0 -54
  168. data/spec/shoes/radio_spec.rb +0 -32
  169. data/spec/shoes/rect_spec.rb +0 -39
  170. data/spec/shoes/renamed_delegate_spec.rb +0 -70
  171. data/spec/shoes/shape_spec.rb +0 -95
  172. data/spec/shoes/shared_examples/button.rb +0 -6
  173. data/spec/shoes/shared_examples/changeable.rb +0 -26
  174. data/spec/shoes/shared_examples/clickable.rb +0 -5
  175. data/spec/shoes/shared_examples/common_methods.rb +0 -35
  176. data/spec/shoes/shared_examples/dimensions.rb +0 -32
  177. data/spec/shoes/shared_examples/dsl.rb +0 -44
  178. data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
  179. data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
  180. data/spec/shoes/shared_examples/dsl/background.rb +0 -26
  181. data/spec/shoes/shared_examples/dsl/border.rb +0 -10
  182. data/spec/shoes/shared_examples/dsl/button.rb +0 -5
  183. data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
  184. data/spec/shoes/shared_examples/dsl/check.rb +0 -11
  185. data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
  186. data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
  187. data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
  188. data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
  189. data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
  190. data/spec/shoes/shared_examples/dsl/gradient.rb +0 -62
  191. data/spec/shoes/shared_examples/dsl/image.rb +0 -21
  192. data/spec/shoes/shared_examples/dsl/line.rb +0 -9
  193. data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
  194. data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
  195. data/spec/shoes/shared_examples/dsl/oval.rb +0 -88
  196. data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
  197. data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
  198. data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
  199. data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
  200. data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
  201. data/spec/shoes/shared_examples/dsl/star.rb +0 -48
  202. data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
  203. data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
  204. data/spec/shoes/shared_examples/dsl/style.rb +0 -32
  205. data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
  206. data/spec/shoes/shared_examples/dsl/video.rb +0 -5
  207. data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
  208. data/spec/shoes/shared_examples/hover_leave.rb +0 -11
  209. data/spec/shoes/shared_examples/parent.rb +0 -6
  210. data/spec/shoes/shared_examples/scroll.rb +0 -41
  211. data/spec/shoes/shared_examples/shared_element_method.rb +0 -60
  212. data/spec/shoes/shared_examples/slot.rb +0 -331
  213. data/spec/shoes/shared_examples/state.rb +0 -19
  214. data/spec/shoes/shared_examples/style.rb +0 -82
  215. data/spec/shoes/slot_spec.rb +0 -130
  216. data/spec/shoes/sound_spec.rb +0 -15
  217. data/spec/shoes/span_spec.rb +0 -112
  218. data/spec/shoes/spec_helper.rb +0 -24
  219. data/spec/shoes/stack_spec.rb +0 -79
  220. data/spec/shoes/star_spec.rb +0 -31
  221. data/spec/shoes/text_block_dimensions_spec.rb +0 -75
  222. data/spec/shoes/text_block_spec.rb +0 -270
  223. data/spec/shoes/url_spec.rb +0 -68
  224. data/spec/shoes/widget_spec.rb +0 -70
  225. data/spec/shoes_spec.rb +0 -44
  226. data/spec/swt_shoes/shared_examples/clickable.rb +0 -85
  227. data/spec/swt_shoes/sound.rb +0 -10
@@ -1,21 +0,0 @@
1
- shared_examples_for "image DSL method" do
2
- let(:path) { Shoes::DIR + '/static/shoes-icon.png' }
3
- let(:opts) { {} }
4
- let(:image) { dsl.image path, opts }
5
-
6
- it 'should set the path' do
7
- expect(image.file_path).to eq(path)
8
- end
9
-
10
- context 'with :top and :left style attributes' do
11
- let(:opts) { {left: 55, top: 66} }
12
-
13
- it 'should set the left' do
14
- expect(image.left).to eq(55)
15
- end
16
-
17
- it 'should set the top' do
18
- expect(image.top).to eq(66)
19
- end
20
- end
21
- end
@@ -1,9 +0,0 @@
1
- shared_examples_for "line DSL method" do
2
- it "creates a Shoes::Line" do
3
- expect(dsl.line(10, 15, 20, 30)).to be_an_instance_of(Shoes::Line)
4
- end
5
-
6
- it "raises an ArgumentError" do
7
- expect { dsl.line(30) }.to raise_error(ArgumentError)
8
- end
9
- end
@@ -1,6 +0,0 @@
1
- shared_examples_for "nofill DSL method" do
2
- it "sets nil" do
3
- dsl.nofill
4
- expect(dsl.style[:fill]).to eq(nil)
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- shared_examples_for "nostroke DSL method" do
2
- it "sets nil" do
3
- dsl.nostroke
4
- expect(dsl.style[:stroke]).to eq(nil)
5
- end
6
- end
@@ -1,88 +0,0 @@
1
- shared_examples_for "an oval/circle element" do
2
- it "makes a Shoes::Oval" do
3
- expect(oval).to be_instance_of(Shoes::Oval)
4
- end
5
-
6
- it "sets the proper dimensions" do
7
- expect(oval.top).to eq(top)
8
- expect(oval.left).to eq(left)
9
- expect(oval.width).to eq(width)
10
- expect(oval.height).to eq(height)
11
- end
12
-
13
- it "sets stroke" do
14
- expect(oval.style[:stroke]).to eq(stroke)
15
- end
16
-
17
- it "sets fill" do
18
- expect(oval.style[:fill]).to eq(fill)
19
- end
20
- end
21
-
22
- shared_examples_for "oval DSL method" do
23
- let(:left) { 20 }
24
- let(:top) { 30 }
25
- let(:width) { 100 }
26
- let(:height) { 200 }
27
- let(:stroke) { Shoes::COLORS[:black] }
28
- let(:fill) { Shoes::COLORS[:black] }
29
-
30
- describe "creating an oval" do
31
- describe "with explicit arguments" do
32
- let(:oval) { dsl.oval(left, top, width, height) }
33
- it_behaves_like "an oval/circle element"
34
- end
35
-
36
- describe "with stroke and fill styles" do
37
- let(:stroke) { Shoes::COLORS.fetch :orchid }
38
- let(:fill) { Shoes::COLORS.fetch :lemonchiffon }
39
-
40
- describe "as colors" do
41
- let(:oval) { dsl.oval(left, top, width, height, stroke: stroke, fill: fill) }
42
- it_behaves_like "an oval/circle element"
43
- end
44
-
45
- describe "as hex strings" do
46
- let(:oval) { dsl.oval(left, top, width, height, stroke: stroke.hex, fill: fill.hex) }
47
- it_behaves_like "an oval/circle element"
48
- end
49
- end
50
-
51
- describe "with too few arguments" do
52
- it "raises an ArgumentError" do
53
- expect { dsl.oval(10) }.to raise_error(ArgumentError)
54
- end
55
- end
56
- end
57
-
58
- describe "creating a circle" do
59
- let(:width) { height }
60
-
61
- describe "with explicit arguments" do
62
- let(:oval) { dsl.oval(left, top, width, height) }
63
- it_behaves_like "an oval/circle element"
64
- end
65
-
66
- describe "with top, left, diameter" do
67
- let(:oval) { dsl.oval(left, top, width) }
68
- it_behaves_like "an oval/circle element"
69
- end
70
-
71
- describe "with a style hash" do
72
- describe "containing left, top, height, width" do
73
- let(:oval) { dsl.oval(left: left, top: top, width: width, height: height) }
74
- it_behaves_like "an oval/circle element"
75
- end
76
-
77
- describe "containing left, top, height, width, center: false" do
78
- let(:oval) { dsl.oval(left: left, top: top, width: width, height: height, center: false) }
79
- it_behaves_like "an oval/circle element"
80
- end
81
-
82
- describe "containing left, top, diameter" do
83
- let(:oval) { dsl.oval(left: left, top: top, diameter: width) }
84
- it_behaves_like "an oval/circle element"
85
- end
86
- end
87
- end
88
- end
@@ -1,34 +0,0 @@
1
- shared_examples_for "pattern DSL method" do
2
- let(:honeydew) { Shoes::COLORS[:honeydew] }
3
- let(:salmon) { Shoes::COLORS[:salmon] }
4
-
5
- context "with single color" do
6
- let(:pattern) { dsl.pattern honeydew }
7
- it "returns the color" do
8
- expect(pattern).to eq(honeydew)
9
- end
10
- end
11
-
12
- context "with color range" do
13
- let(:pattern) { dsl.pattern honeydew..salmon }
14
-
15
- it "returns a gradient" do
16
- expect(pattern).to eq(dsl.gradient honeydew..salmon)
17
- end
18
- end
19
-
20
- context "with single string" do
21
- let(:pattern) { dsl.pattern honeydew.hex }
22
- it "returns the color" do
23
- expect(pattern).to eq(honeydew)
24
- end
25
- end
26
-
27
- context "with string range" do
28
- let(:pattern) { dsl.pattern honeydew.hex..salmon.hex }
29
-
30
- it "returns a gradient" do
31
- expect(pattern).to eq(dsl.gradient honeydew..salmon)
32
- end
33
- end
34
- end
@@ -1,7 +0,0 @@
1
- shared_examples_for "progress DSL method" do
2
- let(:progress) { dsl.progress }
3
-
4
- it 'should be a progress bar' do
5
- expect(progress).to be_instance_of Shoes::Progress
6
- end
7
- end
@@ -1,92 +0,0 @@
1
- shared_examples_for "rectangle dimensions" do
2
- it "makes a Shoes::Rect" do
3
- expect(rect).to be_an_instance_of(Shoes::Rect)
4
- end
5
-
6
- it "sets proper dimensions" do
7
- expect(rect.left).to eq(left)
8
- expect(rect.top).to eq(top)
9
- expect(rect.width).to eq(width)
10
- expect(rect.height).to eq(height)
11
- end
12
- end
13
-
14
- shared_examples_for "rect DSL method" do
15
- let(:left) { 40 }
16
- let(:top) { 30 }
17
- let(:curve) { 12 }
18
-
19
- it "raises an ArgumentError" do
20
- expect { dsl.rect(30) }.to raise_exception(ArgumentError)
21
- end
22
-
23
- context 'unequal sides' do
24
- let(:width) { 200 }
25
- let(:height) { 100 }
26
-
27
- context "from explicit arguments" do
28
- let(:rect) { dsl.rect left, top, width, height }
29
-
30
- include_examples "rectangle dimensions"
31
-
32
- it "defaults to corner radius of 0" do
33
- expect(rect.curve).to eq(0)
34
- end
35
- end
36
-
37
- context "round corners, from explicit arguments" do
38
- let(:rect) { dsl.rect left, top, width, height, curve }
39
-
40
- include_examples "rectangle dimensions"
41
-
42
- it "sets corner radius" do
43
- expect(rect.curve).to eq(curve)
44
- end
45
- end
46
-
47
- context "from style hash" do
48
- let(:rect) { dsl.rect left: left, top: top, width: width, height: height }
49
-
50
- include_examples "rectangle dimensions"
51
-
52
- it "defaults to corner radius of 0" do
53
- expect(rect.curve).to eq(0)
54
- end
55
- end
56
-
57
- context "rounded corners, from style hash" do
58
- let(:rect) { dsl.rect left: left, top: top, width: width, height: height, curve: curve }
59
-
60
- include_examples "rectangle dimensions"
61
-
62
- it "sets corner radius" do
63
- expect(rect.curve).to eq(curve)
64
- end
65
- end
66
- end
67
-
68
- context "square" do
69
- let(:width) { 200 }
70
- let(:height) { 200 }
71
-
72
- context "from explicit arguments" do
73
- let(:rect) { dsl.rect left, top, width }
74
-
75
- include_examples "rectangle dimensions"
76
-
77
- it "defaults to corner radius of 0" do
78
- expect(rect.curve).to eq(0)
79
- end
80
- end
81
-
82
- context "square, from style hash" do
83
- let(:rect) { dsl.rect left: left, top: top, width: width }
84
-
85
- include_examples "rectangle dimensions"
86
-
87
- it "defaults to corner radius of 0" do
88
- expect(rect.curve).to eq(0)
89
- end
90
- end
91
- end
92
- end
@@ -1,26 +0,0 @@
1
- shared_examples_for "rgb DSL method" do
2
- let(:red) { 100 }
3
- let(:green) { 149 }
4
- let(:blue) { 237 }
5
- let(:alpha) { 133 } # cornflowerblue
6
-
7
- it "sends args to Shoes::Color" do
8
- expect(Shoes::Color).to receive(:new).with(red, green, blue, alpha)
9
- dsl.rgb(red, green, blue, alpha)
10
- end
11
-
12
- it "defaults to opaque" do
13
- expect(Shoes::Color).to receive(:new).with(red, green, blue, Shoes::Color::OPAQUE)
14
- dsl.rgb(red, green, blue)
15
- end
16
-
17
- describe "named color method" do
18
- it "produces correct color" do
19
- expect(dsl.cornflowerblue).to eq(Shoes::Color.new red, green, blue)
20
- end
21
-
22
- it "accepts alpha arg" do
23
- expect(dsl.cornflowerblue(alpha)).to eq(Shoes::Color.new red, green, blue, alpha)
24
- end
25
- end
26
- end
@@ -1,21 +0,0 @@
1
- shared_examples_for "shape DSL method" do
2
- let(:shape) {
3
- dsl.shape {
4
- move_to 400, 300
5
- line_to 400, 200
6
- line_to 100, 100
7
- line_to 400, 300
8
- curve_to 100, 100, 20, 200, 120, 240
9
- }
10
- }
11
-
12
- it "creates a Shoes::Shape" do
13
- expect(shape).to be_an_instance_of(Shoes::Shape)
14
- end
15
-
16
- it "receives style from app" do
17
- green = Shoes::COLORS.fetch :green
18
- dsl.style[:stroke] = green
19
- expect(shape.stroke).to eq(green)
20
- end
21
- end
@@ -1,48 +0,0 @@
1
- shared_examples_for "star DSL method" do
2
- it "creates a Shoes::Star" do
3
- expect(dsl.star(30, 20)).to be_an_instance_of(Shoes::Star)
4
- end
5
-
6
- it "raises an ArgumentError with just one argument" do
7
- expect { dsl.star(30) }.to raise_error(ArgumentError)
8
- end
9
-
10
- describe 'instantiation' do
11
- let(:left) {10}
12
- let(:top) {20}
13
- let(:points) {15}
14
- let(:outer) {27}
15
- let(:inner) {33}
16
- DEFAULT_POINTS = 10
17
- DEFAULT_OUTER = 100.0
18
- DEFAULT_INNER = 50.0
19
-
20
- describe '2 arguments' do
21
- subject {dsl.star left, top}
22
- its(:left) {should eq left}
23
- its(:top) {should eq top}
24
- its(:points) {should eq DEFAULT_POINTS}
25
- its(:outer) {should eq DEFAULT_OUTER}
26
- its(:inner) {should eq DEFAULT_INNER}
27
- end
28
-
29
- describe '4 arguments' do
30
- subject {dsl.star left, top, points, outer}
31
- its(:left) {should eq left}
32
- its(:top) {should eq top}
33
- its(:points) {should eq points}
34
- its(:outer) {should eq outer}
35
- its(:inner) {should eq DEFAULT_INNER}
36
- end
37
-
38
- describe '5 arguments' do
39
- subject {dsl.star left, top, points, outer, inner}
40
- its(:left) {should eq left}
41
- its(:top) {should eq top}
42
- its(:points) {should eq points}
43
- its(:outer) {should eq outer}
44
- its(:inner) {should eq inner}
45
- end
46
-
47
- end
48
- end
@@ -1,30 +0,0 @@
1
- shared_examples_for "stroke DSL method" do
2
- let(:color) { Shoes::COLORS.fetch :tomato }
3
-
4
- it "returns a color" do
5
- expect(dsl.stroke(color).class).to eq(Shoes::Color)
6
- end
7
-
8
- # This works differently on a container than on a normal element
9
- it "sets on receiver" do
10
- dsl.stroke color
11
- expect(dsl.style[:stroke]).to eq(color)
12
- end
13
-
14
- it "applies to subsequently created objects" do
15
- dsl.stroke color
16
- expect(Shoes::Rect).to receive(:new) do |*args|
17
- style = args[-2]
18
- expect(style[:stroke]).to eq(color)
19
- end
20
- dsl.rect(10, 10, 100, 100)
21
- end
22
-
23
- context "with hex string" do
24
- let(:color) { "#fff" }
25
-
26
- it "sets the color" do
27
- expect(dsl.stroke(color)).to eq(Shoes::COLORS[:white])
28
- end
29
- end
30
- end
@@ -1,19 +0,0 @@
1
- shared_examples_for "strokewidth DSL method" do
2
- it "returns a number" do
3
- expect(dsl.strokewidth(4)).to eq(4)
4
- end
5
-
6
- it "sets on receiver" do
7
- dsl.strokewidth 4
8
- expect(dsl.style[:strokewidth]).to eq(4)
9
- end
10
-
11
- it "applies to subsequently created objects" do
12
- dsl.strokewidth 6
13
- expect(Shoes::Rect).to receive(:new) do |*args|
14
- style = args[-2]
15
- expect(style[:strokewidth]).to eq(6)
16
- end
17
- dsl.rect(10, 10, 100, 100)
18
- end
19
- end
@@ -1,32 +0,0 @@
1
- shared_examples_for "style DSL method" do
2
- describe "setting new defaults for text block" do
3
- let(:stroke) { Shoes::COLORS[:chartreuse] }
4
- let(:size) { 42 }
5
- let(:fill) { Shoes::COLORS[:peru] }
6
- let(:font ) { "SOME FONT" }
7
- let(:style) { {:stroke => stroke, :size => size, :fill => fill, :font => font} }
8
-
9
- %w(Banner Title Subtitle Tagline Caption Para Inscription).each do |text_block|
10
- describe text_block do
11
- let(:element) { dsl.public_send text_block.downcase, "Hello!" }
12
- let(:klass) { Shoes.const_get(text_block) }
13
-
14
- before :each do
15
- dsl.style klass, style
16
- end
17
-
18
- it "creates element with appropriate class" do
19
- expect(element.class).to eq(klass)
20
- end
21
-
22
- it "sets size" do
23
- expect(element.size).to eq(size)
24
- end
25
-
26
- it "sets font" do
27
- expect(element.font).to eq(font)
28
- end
29
- end
30
- end
31
- end
32
- end