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.
- checksums.yaml +4 -4
- data/README.md +5 -200
- data/Rakefile +1 -0
- data/bin/shoes-swt +11 -0
- data/lib/shoes/swt.rb +5 -2
- data/lib/shoes/swt/animation.rb +2 -2
- data/lib/shoes/swt/app.rb +45 -50
- data/lib/shoes/swt/arc.rb +7 -7
- data/lib/shoes/swt/background.rb +1 -1
- data/lib/shoes/swt/border.rb +1 -2
- data/lib/shoes/swt/click_listener.rb +70 -0
- data/lib/shoes/swt/color.rb +5 -5
- data/lib/shoes/swt/common/clickable.rb +2 -53
- data/lib/shoes/swt/common/fill.rb +1 -1
- data/lib/shoes/swt/common/painter.rb +7 -7
- data/lib/shoes/swt/common/painter_updates_position.rb +2 -2
- data/lib/shoes/swt/common/remove.rb +2 -3
- data/lib/shoes/swt/common/resource.rb +1 -1
- data/lib/shoes/swt/common/selection_listener.rb +14 -14
- data/lib/shoes/swt/common/stroke.rb +1 -2
- data/lib/shoes/swt/common/update_position.rb +1 -1
- data/lib/shoes/swt/dialog.rb +3 -45
- data/lib/shoes/swt/disposed_protection.rb +1 -1
- data/lib/shoes/swt/download.rb +0 -1
- data/lib/shoes/swt/font.rb +4 -4
- data/lib/shoes/swt/generate-backend.rb +9 -0
- data/lib/shoes/swt/gradient.rb +17 -16
- data/lib/shoes/swt/image.rb +3 -5
- data/lib/shoes/swt/image_pattern.rb +2 -2
- data/lib/shoes/swt/input_box.rb +3 -3
- data/lib/shoes/swt/key_listener.rb +6 -6
- data/lib/shoes/swt/line.rb +4 -24
- data/lib/shoes/swt/link.rb +2 -2
- data/lib/shoes/swt/link_segment.rb +3 -3
- data/lib/shoes/swt/list_box.rb +4 -4
- data/lib/shoes/swt/mouse_move_listener.rb +6 -5
- data/lib/shoes/swt/oval.rb +2 -3
- data/lib/shoes/swt/packager.rb +82 -0
- data/lib/shoes/swt/progress.rb +2 -2
- data/lib/shoes/swt/radio.rb +0 -2
- data/lib/shoes/swt/radio_group.rb +54 -54
- data/lib/shoes/swt/rect_painter.rb +7 -7
- data/lib/shoes/swt/redrawing_aspect.rb +32 -34
- data/lib/shoes/swt/shape.rb +1 -1
- data/lib/shoes/swt/shoes_layout.rb +5 -2
- data/lib/shoes/swt/slot.rb +2 -3
- data/lib/shoes/swt/sound.rb +17 -22
- data/lib/shoes/swt/star.rb +30 -8
- data/lib/shoes/swt/swt_button.rb +3 -2
- data/lib/shoes/swt/text_block.rb +3 -3
- data/lib/shoes/swt/text_block/cursor_painter.rb +2 -2
- data/lib/shoes/swt/text_block/fitter.rb +5 -3
- data/lib/shoes/swt/text_block/painter.rb +9 -9
- data/lib/shoes/swt/text_block/text_font_factory.rb +3 -3
- data/lib/shoes/swt/text_block/text_segment.rb +9 -9
- data/lib/shoes/swt/text_block/text_segment_collection.rb +2 -0
- data/lib/shoes/swt/text_block/text_style_factory.rb +9 -3
- data/lib/shoes/swt/timer.rb +1 -1
- data/lib/shoes/swt/version.rb +1 -1
- data/shoes-swt.gemspec +7 -6
- data/spec/shoes/cli_spec.rb +2 -2
- data/spec/{swt_shoes → shoes/swt}/animation_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/app_spec.rb +36 -3
- data/spec/{swt_shoes → shoes/swt}/arc_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/background_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/border_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/button_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/check_spec.rb +1 -1
- data/spec/shoes/swt/click_listener_spec.rb +162 -0
- data/spec/{swt_shoes → shoes/swt}/color_factory_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/color_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/common/painter_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/common/remove_spec.rb +4 -11
- data/spec/{swt_shoes → shoes/swt}/configuration_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/dialog_spec.rb +1 -7
- data/spec/{swt_shoes → shoes/swt}/disposed_protection_spec.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/flow_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/font_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/gradient_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/image_pattern_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/image_spec.rb +4 -3
- data/spec/{swt_shoes → shoes/swt}/input_box_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/integration_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/key_listener_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/line_spec.rb +4 -8
- data/spec/{swt_shoes → shoes/swt}/link_segment_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/link_spec.rb +3 -10
- data/spec/{swt_shoes → shoes/swt}/list_box_spec.rb +5 -3
- data/spec/{swt_shoes → shoes/swt}/minimal.png +0 -0
- data/spec/{swt_shoes → shoes/swt}/mouse_move_listener_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/oval_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/progress_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/radio_group_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/radio_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/rect_painter_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/rect_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/shape_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/shared_examples/button.rb +0 -0
- data/spec/shoes/swt/shared_examples/clickable.rb +13 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/movable.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/paintable.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/painter.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/pattern.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/removable.rb +1 -3
- data/spec/{swt_shoes → shoes/swt}/shared_examples/swt_app_context.rb +11 -3
- data/spec/{swt_shoes → shoes/swt}/shared_examples/visibility.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shell_control_listener_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/slot_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/spec_helper.rb +0 -1
- data/spec/{swt_shoes → shoes/swt}/star_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/centered_text_segment_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/cursor_painter_spec.rb +8 -4
- data/spec/{swt_shoes → shoes/swt}/text_block/fitter_spec.rb +5 -5
- data/spec/{swt_shoes → shoes/swt}/text_block/painter_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/text_font_factory_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_collection_spec.rb +7 -2
- data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block_spec.rb +2 -5
- data/spec/spec_helper.rb +7 -3
- metadata +132 -331
- data/CHANGELOG +0 -84
- data/Gemfile +0 -24
- data/Guardfile +0 -11
- data/manifests/common.rb +0 -34
- data/manifests/shoes-swt.rb +0 -29
- data/spec/code_coverage.rb +0 -14
- data/spec/shoes/animation_spec.rb +0 -65
- data/spec/shoes/app_spec.rb +0 -484
- data/spec/shoes/arc_spec.rb +0 -51
- data/spec/shoes/background_spec.rb +0 -53
- data/spec/shoes/border_spec.rb +0 -47
- data/spec/shoes/builtin_methods_spec.rb +0 -110
- data/spec/shoes/button_spec.rb +0 -44
- data/spec/shoes/check_spec.rb +0 -35
- data/spec/shoes/color_spec.rb +0 -408
- data/spec/shoes/common/inspect_spec.rb +0 -26
- data/spec/shoes/common/remove_spec.rb +0 -38
- data/spec/shoes/common/style_normalizer_spec.rb +0 -28
- data/spec/shoes/common/style_spec.rb +0 -147
- data/spec/shoes/configuration_spec.rb +0 -36
- data/spec/shoes/constants_spec.rb +0 -38
- data/spec/shoes/dialog_spec.rb +0 -163
- data/spec/shoes/dimension_spec.rb +0 -407
- data/spec/shoes/dimensions_spec.rb +0 -837
- data/spec/shoes/download_spec.rb +0 -142
- data/spec/shoes/flow_spec.rb +0 -133
- data/spec/shoes/font_spec.rb +0 -37
- data/spec/shoes/framework_learning_spec.rb +0 -30
- data/spec/shoes/gradient_spec.rb +0 -32
- data/spec/shoes/helpers/fake_element.rb +0 -17
- data/spec/shoes/helpers/inspect_helpers.rb +0 -5
- data/spec/shoes/helpers/sample17_helper.rb +0 -66
- data/spec/shoes/image_spec.rb +0 -49
- data/spec/shoes/images/shoe.jpg +0 -0
- data/spec/shoes/input_box_spec.rb +0 -80
- data/spec/shoes/integration_spec.rb +0 -20
- data/spec/shoes/internal_app_spec.rb +0 -141
- data/spec/shoes/keypress_spec.rb +0 -11
- data/spec/shoes/keyrelease_spec.rb +0 -12
- data/spec/shoes/line_spec.rb +0 -49
- data/spec/shoes/link_spec.rb +0 -105
- data/spec/shoes/list_box_spec.rb +0 -74
- data/spec/shoes/logger/ruby_spec.rb +0 -8
- data/spec/shoes/logger_spec.rb +0 -45
- data/spec/shoes/oval_spec.rb +0 -24
- data/spec/shoes/point_spec.rb +0 -71
- data/spec/shoes/progress_spec.rb +0 -54
- data/spec/shoes/radio_spec.rb +0 -32
- data/spec/shoes/rect_spec.rb +0 -39
- data/spec/shoes/renamed_delegate_spec.rb +0 -70
- data/spec/shoes/shape_spec.rb +0 -95
- data/spec/shoes/shared_examples/button.rb +0 -6
- data/spec/shoes/shared_examples/changeable.rb +0 -26
- data/spec/shoes/shared_examples/clickable.rb +0 -5
- data/spec/shoes/shared_examples/common_methods.rb +0 -35
- data/spec/shoes/shared_examples/dimensions.rb +0 -32
- data/spec/shoes/shared_examples/dsl.rb +0 -44
- data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
- data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
- data/spec/shoes/shared_examples/dsl/background.rb +0 -26
- data/spec/shoes/shared_examples/dsl/border.rb +0 -10
- data/spec/shoes/shared_examples/dsl/button.rb +0 -5
- data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
- data/spec/shoes/shared_examples/dsl/check.rb +0 -11
- data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
- data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
- data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
- data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
- data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
- data/spec/shoes/shared_examples/dsl/gradient.rb +0 -62
- data/spec/shoes/shared_examples/dsl/image.rb +0 -21
- data/spec/shoes/shared_examples/dsl/line.rb +0 -9
- data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
- data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
- data/spec/shoes/shared_examples/dsl/oval.rb +0 -88
- data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
- data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
- data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
- data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
- data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
- data/spec/shoes/shared_examples/dsl/star.rb +0 -48
- data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
- data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
- data/spec/shoes/shared_examples/dsl/style.rb +0 -32
- data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
- data/spec/shoes/shared_examples/dsl/video.rb +0 -5
- data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
- data/spec/shoes/shared_examples/hover_leave.rb +0 -11
- data/spec/shoes/shared_examples/parent.rb +0 -6
- data/spec/shoes/shared_examples/scroll.rb +0 -41
- data/spec/shoes/shared_examples/shared_element_method.rb +0 -60
- data/spec/shoes/shared_examples/slot.rb +0 -331
- data/spec/shoes/shared_examples/state.rb +0 -19
- data/spec/shoes/shared_examples/style.rb +0 -82
- data/spec/shoes/slot_spec.rb +0 -130
- data/spec/shoes/sound_spec.rb +0 -15
- data/spec/shoes/span_spec.rb +0 -112
- data/spec/shoes/spec_helper.rb +0 -24
- data/spec/shoes/stack_spec.rb +0 -79
- data/spec/shoes/star_spec.rb +0 -31
- data/spec/shoes/text_block_dimensions_spec.rb +0 -75
- data/spec/shoes/text_block_spec.rb +0 -270
- data/spec/shoes/url_spec.rb +0 -68
- data/spec/shoes/widget_spec.rb +0 -70
- data/spec/shoes_spec.rb +0 -44
- data/spec/swt_shoes/shared_examples/clickable.rb +0 -85
- data/spec/swt_shoes/sound.rb +0 -10
data/spec/shoes/download_spec.rb
DELETED
@@ -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
|
data/spec/shoes/flow_spec.rb
DELETED
@@ -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
|
data/spec/shoes/font_spec.rb
DELETED
@@ -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
|
data/spec/shoes/gradient_spec.rb
DELETED
@@ -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,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
|