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,26 +0,0 @@
|
|
1
|
-
shared_examples "an element that can respond to change" do
|
2
|
-
describe "when passing a block to the constructor" do
|
3
|
-
it "should notify the block of change events" do
|
4
|
-
expect(input_block).to receive(:call).with(subject)
|
5
|
-
subject.call_change_listeners
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "when setting up a callback with #change" do
|
10
|
-
it "should notify the callback of change events" do
|
11
|
-
called = false
|
12
|
-
subject.change do |element|
|
13
|
-
called = true
|
14
|
-
end
|
15
|
-
subject.call_change_listeners
|
16
|
-
expect(called).to be_truthy
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should pass the element itself to the callback" do
|
20
|
-
subject.change do |element|
|
21
|
-
expect(element).to eq(subject)
|
22
|
-
end
|
23
|
-
subject.call_change_listeners
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
shared_examples_for "movable object" do
|
2
|
-
it "moves" do
|
3
|
-
subject.instance_variable_set(:@app, app)
|
4
|
-
expect(subject.move(300, 200)).to eq(subject)
|
5
|
-
expect(subject.left).to eq(300)
|
6
|
-
expect(subject.top).to eq(200)
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "displacing" do
|
10
|
-
it "displaces backend object" do
|
11
|
-
expect(subject.gui).to receive(:update_position)
|
12
|
-
subject.displace(300, 200)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "does not change reported values of #left and #top" do
|
16
|
-
# no error from calling set location with nil values due to unset values
|
17
|
-
allow(subject.gui).to receive :update_position
|
18
|
-
original_left = subject.left
|
19
|
-
original_top = subject.top
|
20
|
-
subject.displace(300, 200)
|
21
|
-
expect(subject.left).to eq(original_left)
|
22
|
-
expect(subject.top).to eq(original_top)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
shared_examples_for "left, top as center" do | *params |
|
28
|
-
let(:centered_object) { described_class.new(app, parent, left, top, width, height, *params, :center => true) }
|
29
|
-
it "should now be located somewhere" do
|
30
|
-
expect(centered_object.left).to eq(left-(width/2))
|
31
|
-
expect(centered_object.top).to eq(top-(height/2))
|
32
|
-
expect(centered_object.width).to eq(width)
|
33
|
-
expect(centered_object.height).to eq(height)
|
34
|
-
end
|
35
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
shared_examples_for "object with dimensions" do
|
2
|
-
it "should initialize" do
|
3
|
-
expect(subject.left).to eq(left)
|
4
|
-
expect(subject.top).to eq(top)
|
5
|
-
expect(subject.width).to eq(width)
|
6
|
-
expect(subject.height).to eq(height)
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
shared_examples_for "object with relative dimensions" do
|
11
|
-
let(:relative_width) { 0.5 }
|
12
|
-
let(:relative_height) { 0.5 }
|
13
|
-
let(:relative_opts) { {left: left, top: top, width: relative_width, height: relative_height} }
|
14
|
-
|
15
|
-
it "should initialize based on parent dimensions" do
|
16
|
-
expect(subject.left).to eq left
|
17
|
-
expect(subject.top).to eq top
|
18
|
-
expect(subject.width).to be_within(1).of(parent.element_width / 2)
|
19
|
-
expect(subject.height).to be_within(1).of(parent.element_height / 2)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
shared_examples_for "object with negative dimensions" do
|
24
|
-
let(:negative_opts) { {left: left, top: top, width: -width, height: -height} }
|
25
|
-
|
26
|
-
it "should initialize based on parent dimensions" do
|
27
|
-
expect(subject.left).to eq(left)
|
28
|
-
expect(subject.top).to eq(top)
|
29
|
-
expect(subject.width).to eq(parent.element_width - width)
|
30
|
-
expect(subject.height).to eq(parent.element_height - height)
|
31
|
-
end
|
32
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# Shared examples for Shoes::App and Shoes::Slot (flow and stack).
|
2
|
-
# If DSL methods can be called with multiple number of arguments,
|
3
|
-
# and if they set certain defaults, then that what needs to be tested
|
4
|
-
# here.
|
5
|
-
# There are individual specs for the different Shoes elements, so
|
6
|
-
# we don't need to test how they work in details. Here we just test that
|
7
|
-
# the DSL methods construct elements correctly.
|
8
|
-
shared_examples "DSL container" do
|
9
|
-
let(:dsl) { app }
|
10
|
-
|
11
|
-
%w[
|
12
|
-
animate
|
13
|
-
arc
|
14
|
-
background
|
15
|
-
button
|
16
|
-
border
|
17
|
-
cap
|
18
|
-
check
|
19
|
-
edit_box
|
20
|
-
edit_line
|
21
|
-
fill
|
22
|
-
flow
|
23
|
-
gradient
|
24
|
-
image
|
25
|
-
line
|
26
|
-
nofill
|
27
|
-
nostroke
|
28
|
-
oval
|
29
|
-
pattern
|
30
|
-
progress
|
31
|
-
rect
|
32
|
-
rgb
|
33
|
-
shape
|
34
|
-
star
|
35
|
-
stroke
|
36
|
-
strokewidth
|
37
|
-
style
|
38
|
-
video
|
39
|
-
].each do |method|
|
40
|
-
include_examples "#{method} DSL method"
|
41
|
-
end
|
42
|
-
|
43
|
-
include_examples "text element DSL methods"
|
44
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
shared_examples_for "animate DSL method" do
|
2
|
-
context "defaults" do
|
3
|
-
let(:animation) { dsl.animate {} }
|
4
|
-
|
5
|
-
it "is a Shoes::Animation" do
|
6
|
-
expect(animation).to be_an_instance_of(Shoes::Animation)
|
7
|
-
end
|
8
|
-
|
9
|
-
it "framerate is 10" do
|
10
|
-
expect(animation.framerate).to eq 10
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
context "with numeric argument" do
|
15
|
-
let(:animation) { dsl.animate(13) {} }
|
16
|
-
|
17
|
-
it "sets framerate" do
|
18
|
-
expect(animation.framerate).to eq(13)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context "with hash argument" do
|
23
|
-
let(:animation) { dsl.animate(:framerate => 17) {} }
|
24
|
-
|
25
|
-
it "sets framerate" do
|
26
|
-
expect(animation.framerate).to eq(17)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
shared_context "style context" do
|
2
|
-
let(:fill_color) { Shoes::COLORS.fetch(:tomato) }
|
3
|
-
let(:stroke_color) { Shoes::COLORS.fetch(:chartreuse) }
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
subject.fill fill_color
|
7
|
-
subject.stroke stroke_color
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
shared_examples_for "persistent stroke" do
|
12
|
-
include_context "style context"
|
13
|
-
|
14
|
-
it "passes to element" do
|
15
|
-
expect(element.stroke).to eq(stroke_color)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
shared_examples_for "persistent fill" do
|
20
|
-
include_context "style context"
|
21
|
-
|
22
|
-
it "passes to element" do
|
23
|
-
expect(element.fill).to eq(fill_color)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
shared_examples_for "arc DSL method" do
|
28
|
-
let(:arc) { dsl.arc(13, 44, 200, 300, 0, Shoes::TWO_PI) }
|
29
|
-
|
30
|
-
it "creates a Shoes::Arc" do
|
31
|
-
expect(arc).to be_an_instance_of(Shoes::Arc)
|
32
|
-
end
|
33
|
-
|
34
|
-
it "raises an ArgumentError" do
|
35
|
-
expect { dsl.arc(30) }.to raise_exception(ArgumentError)
|
36
|
-
end
|
37
|
-
|
38
|
-
it_behaves_like "persistent fill" do
|
39
|
-
let(:element) { arc }
|
40
|
-
end
|
41
|
-
|
42
|
-
it_behaves_like "persistent stroke" do
|
43
|
-
let(:element) { arc }
|
44
|
-
end
|
45
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
shared_examples_for "background DSL method" do
|
2
|
-
context "with a valid hex string" do
|
3
|
-
it "sets color" do
|
4
|
-
background = subject.background("#fff")
|
5
|
-
expect(background.fill).to eq(Shoes::COLORS[:white])
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
context "with an invalid hex string" do
|
10
|
-
it 'raises an argument error' do
|
11
|
-
expect{ subject.background('#ffq') }.to raise_error('Bad hex color: #ffq')
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'with no valid image' do
|
16
|
-
it 'ignores the background' do
|
17
|
-
expect{ subject.background('fake-shoes.jpg') }.not_to raise_error
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'with a valid image' do
|
22
|
-
it 'creates a Shoes::Background' do
|
23
|
-
expect(subject.background('static/shoes-icon.png')).to be_an_instance_of(Shoes::Background)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
shared_examples_for 'check DSL method' do
|
2
|
-
let(:checkbox) { dsl.check }
|
3
|
-
|
4
|
-
it 'should be a checkbox' do
|
5
|
-
expect(checkbox).to be_instance_of Shoes::Check
|
6
|
-
end
|
7
|
-
|
8
|
-
it 'should be unchecked by default' do
|
9
|
-
expect(checkbox.checked?).to be_falsey
|
10
|
-
end
|
11
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
shared_examples_for "editable element" do
|
2
|
-
subject { super.public_send(dsl_method, *args) }
|
3
|
-
|
4
|
-
describe "with no arguments" do
|
5
|
-
let(:args) { [] }
|
6
|
-
its(:text) { should == '' }
|
7
|
-
its(:width) { should == klazz::STYLES[:width] }
|
8
|
-
its(:height) { should == klazz::STYLES[:height] }
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "with a single text argument" do
|
12
|
-
let(:args) { ['Hello text here'] }
|
13
|
-
|
14
|
-
its(:text) { should == 'Hello text here' }
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "with a style hash" do
|
18
|
-
let(:args) { [{width: 100, height: 50}] }
|
19
|
-
|
20
|
-
its(:text) { should == '' }
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "with a text argument and a style hash" do
|
24
|
-
let(:args) { ['Hello text here', {width: 100, height: 50}] }
|
25
|
-
its(:text) { should == 'Hello text here' }
|
26
|
-
its(:width) { should == 100 }
|
27
|
-
its(:height) { should == 50 }
|
28
|
-
end
|
29
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
shared_examples_for "fill DSL method" do
|
2
|
-
let(:color) { Shoes::COLORS.fetch :tomato }
|
3
|
-
|
4
|
-
it "returns a color" do
|
5
|
-
expect(dsl.fill(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.fill color
|
11
|
-
expect(dsl.style[:fill]).to eq(color)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "applies to subsequently created objects" do
|
15
|
-
dsl.fill color
|
16
|
-
oval = dsl.oval(10, 10, 100, 100)
|
17
|
-
expect(oval.fill).to eq(color)
|
18
|
-
end
|
19
|
-
|
20
|
-
context "with hex string" do
|
21
|
-
let(:color) { "#fff" }
|
22
|
-
|
23
|
-
it "sets the color" do
|
24
|
-
expect(dsl.fill(color)).to eq(Shoes::COLORS[:white])
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
shared_examples_for "flow DSL method" do
|
2
|
-
let(:flow) {dsl.flow}
|
3
|
-
|
4
|
-
it "creates a Shoes::Flow" do
|
5
|
-
expect(flow).to be_an_instance_of(Shoes::Flow)
|
6
|
-
end
|
7
|
-
|
8
|
-
it 'reports an instance of Shoes::App when asked for its app' do
|
9
|
-
expect(flow.app.class).to eq Shoes::App
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'reports an object that responds to stack when asked for its app' do
|
13
|
-
expect(flow.app).to respond_to :stack
|
14
|
-
end
|
15
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
shared_examples_for "creating gradient" do
|
2
|
-
it "returns correct gradient according to #to_s" do
|
3
|
-
expect(gradient.to_s).to eq("(Shoes::Gradient)")
|
4
|
-
end
|
5
|
-
|
6
|
-
it "returns correct gradient according to #inspect" do
|
7
|
-
expect(gradient.inspect).to match("[(]Shoes::Gradient:#{shoes_object_id_pattern} rgb[(]255, 0, 0[)]->rgb[(]0, 0, 255[)][)]")
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
shared_examples_for "gradient DSL method" do
|
12
|
-
context "with colors" do
|
13
|
-
include InspectHelpers
|
14
|
-
|
15
|
-
let(:red) { Shoes::Color.new(255, 0, 0) }
|
16
|
-
let(:blue) { Shoes::Color.new(0, 0, 255) }
|
17
|
-
|
18
|
-
context "two separate" do
|
19
|
-
it_behaves_like "creating gradient" do
|
20
|
-
let(:gradient) { dsl.gradient(red, blue) }
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
context "as range" do
|
25
|
-
it_behaves_like "creating gradient" do
|
26
|
-
let(:gradient) { dsl.gradient(red..blue) }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
context "with strings" do
|
32
|
-
include InspectHelpers
|
33
|
-
|
34
|
-
let(:red) { "#f00" }
|
35
|
-
let(:blue) { "#00f" }
|
36
|
-
|
37
|
-
context "two separate" do
|
38
|
-
it_behaves_like "creating gradient" do
|
39
|
-
let(:gradient) { dsl.gradient(red, blue) }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context "as range" do
|
44
|
-
it_behaves_like "creating gradient" do
|
45
|
-
let(:gradient) { dsl.gradient(red..blue) }
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
context "with gradient" do
|
51
|
-
include InspectHelpers
|
52
|
-
|
53
|
-
it_behaves_like "creating gradient" do
|
54
|
-
let(:gradient_arg) { dsl.gradient("#f00", "#00f") }
|
55
|
-
let(:gradient) { dsl.gradient(gradient_arg) }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
it "fails on bad input" do
|
60
|
-
expect { dsl.gradient(100) }.to raise_error(ArgumentError)
|
61
|
-
end
|
62
|
-
end
|