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,142 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Download do
4
- include_context "dsl app"
5
-
6
- let(:name) { "http://www.google.com/logos/nasa50th.gif" }
7
- let(:response_body) { "NASA 50th logo" }
8
- let(:response_status) {["200", "OK"]}
9
- let(:response_headers) { { "content-length" => "42" }}
10
- let(:opts) { {save: "nasa50th.gif"} }
11
- subject(:download) { Shoes::Download.new app, parent, name, opts, &input_block }
12
-
13
- let(:percent) {download.percent}
14
- let(:length) {download.length}
15
- let(:content_length) {download.content_length}
16
-
17
- before do
18
- stub_request(:get, name)
19
- .to_return(:status => response_status, :body => response_body, :headers => response_headers)
20
- end
21
-
22
- after do
23
- File.delete opts[:save] if File.exist? opts[:save]
24
- end
25
-
26
- context 'before it has been started' do
27
- it 'is 0 percent' do
28
- expect(percent).to eq(0)
29
- end
30
-
31
- it 'understands abort' do
32
- expect(download).to respond_to(:abort)
33
- end
34
-
35
- it 'has initial content_length of 1' do
36
- expect(content_length).to eq(1)
37
- end
38
-
39
- it 'has initial length of 1' do
40
- expect(length).to eq(1)
41
- end
42
- end
43
-
44
- context 'without a progress proc' do
45
- before :each do
46
- download.start
47
- download.join_thread
48
- end
49
-
50
- it 'finishes' do
51
- expect(download).to be_finished
52
- end
53
-
54
- it 'starts' do
55
- expect(download).to be_started
56
- end
57
-
58
- it 'creates the file specified by save' do
59
- expect(File.exist?(opts[:save])).to be_truthy
60
- end
61
- end
62
-
63
- context 'with a progress proc' do
64
- let(:progress_proc) {Proc.new {}}
65
- let(:opts) { {save: "nasa50th.gif", progress: progress_proc} }
66
- subject(:download) { Shoes::Download.new app, parent, name, opts}
67
-
68
- before :each do
69
- allow(download.gui).to receive :eval_block
70
- download.start
71
- download.join_thread
72
- end
73
-
74
- context 'with content length' do
75
- it 'calls the progress proc from start, download and finish' do
76
- expect(download.gui).to have_received(:eval_block).
77
- with(progress_proc, download).
78
- exactly(3).times
79
- end
80
- end
81
-
82
- context 'without content length' do
83
- let(:response_headers) { Hash.new }
84
-
85
- it 'does not call on progress, but called from content length and finish' do
86
- expect(download.gui).to have_received(:eval_block).
87
- with(progress_proc, download).
88
- twice
89
- end
90
- end
91
- end
92
-
93
- describe 'after it is finished' do
94
- let(:result) {download}
95
- let(:response) {download.response}
96
-
97
- before :each do
98
- allow(download.gui).to receive(:eval_block)
99
- download.start
100
- download.join_thread
101
- end
102
-
103
- context 'with a block' do
104
- it 'calls the block with a result' do
105
- expect(download.gui).to have_received(:eval_block).with(input_block, result)
106
- end
107
-
108
- describe 'response object' do
109
- it 'has headers hash' do
110
- expect(response.headers).to eql(response_headers)
111
- end
112
-
113
- it 'has body text' do
114
- expect(response.body).to eql(response_body)
115
- end
116
-
117
- it 'has status array' do
118
- expect(response.status).to eql(response_status)
119
- end
120
- end
121
- end
122
-
123
- context 'without a block' do
124
- subject(:download) { Shoes::Download.new app, parent, name, opts }
125
-
126
- it 'does not call the block' do
127
- expect(download.gui).not_to have_received(:eval_block)
128
- end
129
- end
130
-
131
- context 'with a finish proc' do
132
- let(:finish_proc) {Proc.new {}}
133
- let(:opts) { {save: "nasa50th.gif", finish: finish_proc} }
134
- subject(:download) { Shoes::Download.new app, parent, name, opts}
135
-
136
- it 'calls the finish proc' do
137
- expect(download.gui).to have_received(:eval_block).with(finish_proc, result)
138
- end
139
- end
140
-
141
- end
142
- end
@@ -1,133 +0,0 @@
1
- require 'shoes/spec_helper'
2
- require 'shoes/helpers/fake_element'
3
-
4
- describe Shoes::Flow do
5
- include_context "dsl app"
6
-
7
- subject(:flow) { Shoes::Flow.new(app, parent, input_opts, input_block) }
8
-
9
- it_behaves_like "clickable object"
10
- it_behaves_like "hover and leave events"
11
- it_behaves_like "Slot"
12
-
13
- describe "initialize" do
14
- let(:input_opts) { {:width => 131, :height => 137} }
15
- it "sets accessors" do
16
- expect(flow.parent).to eq(parent)
17
- expect(flow.width).to eq(131)
18
- expect(flow.height).to eq(137)
19
- expect(flow.blk).to eq(input_block)
20
- end
21
-
22
- describe 'margins' do
23
- let(:input_opts) { {margin: 143} }
24
- it 'sets the margins' do
25
- expect(flow.margin).to eq([143, 143, 143, 143])
26
- end
27
- end
28
- end
29
-
30
- it "sets default values" do
31
- f = Shoes::Flow.new(app, parent)
32
- expect(f.width).to eq(app.width)
33
- expect(f.height).to eq(0)
34
- end
35
-
36
- it "clears with an optional block" do
37
- expect(flow).to receive(:clear) do |&blk|
38
- expect(blk).to eq(input_block)
39
- end
40
- flow.clear &input_block
41
- end
42
-
43
- describe "positioning" do
44
- it_behaves_like 'positioning through :_position'
45
- it_behaves_like 'positions the first element in the top left'
46
-
47
- shared_examples_for 'positioning in the same line' do
48
- it 'positions an element in the same row as long as they fit' do
49
- expect(element2.absolute_top).to eq(flow.absolute_top)
50
- end
51
-
52
- it 'positions it next to the other element as long as it fits' do
53
- expect(element2.absolute_left).to eq(element.absolute_right + 1)
54
- end
55
-
56
- it 'has a slot height of the maximum value of the 2 elements' do
57
- expect(flow.height).to eq([element.height, element2.height].max)
58
- end
59
- end
60
-
61
- describe 'two elements added' do
62
- include_context 'two slot children'
63
- include_context 'contents_alignment'
64
-
65
- it_behaves_like 'positioning in the same line'
66
-
67
- describe 'exact fit' do
68
- let(:input_opts) {{width: element.width + element2.width}}
69
- it_behaves_like 'positioning in the same line'
70
- end
71
-
72
- end
73
-
74
- describe 'when the elements dont fit next to each other' do
75
- let(:input_opts){ {width: element.width + element2.width - 10} }
76
- it_behaves_like 'arranges elements underneath each other'
77
-
78
- describe 'and a third element that goes into the second line' do
79
- include_context 'three slot children'
80
- include_context 'contents_alignment'
81
-
82
- it 'positions the third element right next to the second' do
83
- expect(element3.absolute_left).to eq element2.absolute_right + 1
84
- end
85
-
86
- it 'positions the third element on the same height as element 2' do
87
- expect(element3.absolute_top).to eq element2.absolute_top
88
- end
89
- end
90
- end
91
-
92
- describe 'elements dont fit next to each other and set small height' do
93
- let(:input_opts) { {width: element.width + 10, height: element.height + 10} }
94
- it_behaves_like 'set height and contents alignment'
95
- end
96
-
97
- describe 'elements dont fit next to each other and set big height' do
98
- let(:input_opts){ {width: element.width + 10, height: 1000} }
99
- it_behaves_like 'set height and contents alignment'
100
- end
101
-
102
- describe 'with margins and two elements not fitting next to each other' do
103
- let(:input_opts){{width: element.width + 10, margin: 27}}
104
- it_behaves_like 'taking care of margin'
105
- end
106
- end
107
-
108
- describe 'scrolling' do
109
- include_context "scroll"
110
- subject(:flow) { Shoes::Flow.new(app, parent, opts) }
111
-
112
- context 'when scrollable' do
113
- let(:scroll) { true }
114
-
115
- it_behaves_like "scrollable slot"
116
-
117
- context 'when content overflows' do
118
- include_context "overflowing content"
119
- it_behaves_like "scrollable slot with overflowing content"
120
- end
121
- end
122
-
123
- context 'when slot is not scrollable' do
124
- let(:scroll) { false }
125
-
126
- its(:scroll) { should be_falsey }
127
-
128
- it "initializes scroll_top to 0" do
129
- expect(flow.scroll_top).to eq(0)
130
- end
131
- end
132
- end
133
- end
@@ -1,37 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- main_object = self
4
-
5
- describe Shoes::Font do
6
- describe 'font method on the main object' do
7
- it 'returns the name of the font loaded' do
8
- result = main_object.font(Shoes::FONT_DIR + "Coolvetica" + '.ttf')
9
- expect(result).to eq 'Coolvetica'
10
- end
11
-
12
- it 'calls the backend add_font method' do
13
- expect(Shoes.backend::Font).to receive :add_font
14
- main_object.font 'some/path'
15
- end
16
- end
17
-
18
- describe '.font_paths_from_dir' do
19
- it 'returns an array of the paths of the fonts in the directory' do
20
- result = Shoes::Font.font_paths_from_dir(Shoes::FONT_DIR)
21
-
22
- expect(result).to include(Shoes::FONT_DIR + 'Coolvetica.ttf',
23
- Shoes::FONT_DIR + 'Lacuna.ttf')
24
- end
25
-
26
- it 'handles sub directories' do
27
- tmp_font_dir = Shoes::FONT_DIR + 'tmp/'
28
- Dir.mkdir(tmp_font_dir)
29
- tmp_font_path = tmp_font_dir + 'weird_font.ttf'
30
- FileUtils.touch tmp_font_path
31
- result = Shoes::Font.font_paths_from_dir(Shoes::FONT_DIR)
32
- expect(result).to include tmp_font_path
33
- FileUtils.rm_r tmp_font_dir
34
- end
35
- end
36
-
37
- end
@@ -1,30 +0,0 @@
1
- require "shoes/spec_helper"
2
-
3
- module Learning
4
- class App
5
- attr_accessor :gui
6
-
7
- def initialize
8
- @gui = gui_init
9
- end
10
- end
11
- end
12
-
13
- module TextPlugin
14
- module App
15
- def gui_init
16
- "Peter"
17
- end
18
- end
19
- end
20
-
21
- class Learning::App
22
- include TextPlugin::App
23
- end
24
-
25
- describe "A Shoes Framework" do
26
-
27
- it "should include Framework Plugins" do
28
- expect(Learning::App.new.gui).to eq("Peter")
29
- end
30
- end
@@ -1,32 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Gradient do
4
- let(:color1) { Shoes::COLORS[:honeydew] }
5
- let(:color2) { Shoes::COLORS[:salmon] }
6
- subject { Shoes::Gradient.new(color1, color2) }
7
-
8
- describe "comparable" do
9
- let(:new_color) { Shoes::COLORS[:limegreen] }
10
-
11
- it "is equal when values are equal" do
12
- gradient_2 = Shoes::Gradient.new(color1, color2)
13
- expect(subject).to eq(gradient_2)
14
- end
15
-
16
- it "is not equal when color 1 is different" do
17
- gradient_2 = Shoes::Gradient.new(new_color, color2)
18
- expect(subject).not_to eq(gradient_2)
19
- end
20
-
21
- it "is not equal when color 2 is different" do
22
- gradient_2 = Shoes::Gradient.new(new_color, color2)
23
- expect(subject).not_to eq(gradient_2)
24
- end
25
-
26
- it "is not equal to just a color" do
27
- gradient_2 = Shoes::Gradient.new(color1, new_color)
28
- expect(subject).not_to eq(gradient_2)
29
- end
30
-
31
- end
32
- end
@@ -1,17 +0,0 @@
1
- class Shoes
2
- class FakeElement < Dimensions
3
- include Common::Inspect
4
- include Common::Visibility
5
- include Common::Positioning
6
- include Common::Remove
7
-
8
- def add_child(element)
9
- true
10
- end
11
-
12
- def adjust_current_position(*_)
13
- end
14
-
15
- attr_accessor :parent, :gui
16
- end
17
- end
@@ -1,5 +0,0 @@
1
- module InspectHelpers
2
- def shoes_object_id_pattern
3
- '0x[0-9a-f]{8}'
4
- end
5
- end
@@ -1,66 +0,0 @@
1
- # Emulates samples/sample17.rb
2
- #
3
- # Shoes.app width: 240, height: 95 do
4
- # para 'Testing, test, test. ',
5
- # strong('Breadsticks. '),
6
- # em('Breadsticks. '),
7
- # code('Breadsticks. '),
8
- # bg(fg(strong(ins('EVEN BETTER.')), white), rgb(255, 0, 192)),
9
- # sub('fine!')
10
- # end
11
- #
12
- class Sample17Helper
13
-
14
- def initialize(app)
15
- # This gives us the Shoes::App
16
- @app = app.app
17
- end
18
-
19
- def create_para
20
- @app.para("Testing, test, test. ", strong_breadsticks, em, code, bg, sub)
21
- end
22
-
23
- def breadsticks
24
- "Breadsticks. "
25
- end
26
-
27
- def even_better
28
- "EVEN BETTER."
29
- end
30
-
31
- def fine
32
- "fine!"
33
- end
34
-
35
- def strong_breadsticks
36
- @strong_breadsticks ||= @app.strong breadsticks
37
- end
38
-
39
- def em
40
- @em ||= @app.em breadsticks
41
- end
42
-
43
- def code
44
- @code ||= @app.code breadsticks
45
- end
46
-
47
- def ins
48
- @ins ||= @app.ins even_better
49
- end
50
-
51
- def fg
52
- @fg ||= @app.fg strong, Shoes::COLORS[:white]
53
- end
54
-
55
- def strong
56
- @strong ||= @app.strong ins
57
- end
58
-
59
- def bg
60
- @bg ||= @app.bg fg, Shoes::Color.new(255, 0, 192)
61
- end
62
-
63
- def sub
64
- @sub ||= @app.sub fine
65
- end
66
- end