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
@@ -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,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,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
|