shoes-core 4.0.0.pre6 → 4.0.0.pre7
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/bin/shoes-picker +1 -1
- data/lib/shoes/app.rb +3 -3
- data/lib/shoes/arc.rb +6 -5
- data/lib/shoes/arrow.rb +31 -0
- data/lib/shoes/background.rb +1 -1
- data/lib/shoes/border.rb +1 -1
- data/lib/shoes/builtin_methods.rb +1 -1
- data/lib/shoes/color.rb +3 -3
- data/lib/shoes/color/dsl_helpers.rb +10 -7
- data/lib/shoes/color/hex_converter.rb +1 -1
- data/lib/shoes/common/attachable.rb +11 -0
- data/lib/shoes/common/background_element.rb +8 -0
- data/lib/shoes/common/hover.rb +7 -17
- data/lib/shoes/common/link_finder.rb +12 -0
- data/lib/shoes/common/positioning.rb +1 -1
- data/lib/shoes/common/state.rb +1 -1
- data/lib/shoes/common/style.rb +9 -4
- data/lib/shoes/common/translate.rb +24 -0
- data/lib/shoes/common/ui_element.rb +1 -0
- data/lib/shoes/common/visibility.rb +1 -1
- data/lib/shoes/configuration.rb +2 -2
- data/lib/shoes/core/version.rb +3 -1
- data/lib/shoes/dimensions.rb +6 -2
- data/lib/shoes/dsl.rb +34 -14
- data/lib/shoes/font.rb +1 -1
- data/lib/shoes/gradient.rb +2 -1
- data/lib/shoes/image.rb +2 -2
- data/lib/shoes/input_box.rb +2 -2
- data/lib/shoes/internal_app.rb +8 -8
- data/lib/shoes/line.rb +7 -6
- data/lib/shoes/link.rb +5 -6
- data/lib/shoes/list_box.rb +2 -2
- data/lib/shoes/logger.rb +2 -1
- data/lib/shoes/mock.rb +1 -0
- data/lib/shoes/mock/arrow.rb +15 -0
- data/lib/shoes/mock/rect.rb +2 -1
- data/lib/shoes/mock/slot.rb +5 -1
- data/lib/shoes/mock/star.rb +2 -1
- data/lib/shoes/oval.rb +5 -4
- data/lib/shoes/point.rb +2 -1
- data/lib/shoes/progress.rb +1 -1
- data/lib/shoes/rect.rb +3 -2
- data/lib/shoes/shape.rb +14 -9
- data/lib/shoes/slot.rb +54 -25
- data/lib/shoes/slot_contents.rb +1 -3
- data/lib/shoes/star.rb +4 -3
- data/lib/shoes/text.rb +5 -0
- data/lib/shoes/text_block.rb +9 -9
- data/lib/shoes/ui/picker.rb +5 -5
- data/lib/shoes/version.rb +3 -1
- data/lib/shoes/widget.rb +2 -2
- data/lib/shoes/window.rb +6 -0
- data/spec/shoes/app_spec.rb +16 -16
- data/spec/shoes/arc_spec.rb +1 -1
- data/spec/shoes/arrow_spec.rb +28 -0
- data/spec/shoes/background_spec.rb +2 -2
- data/spec/shoes/border_spec.rb +3 -3
- data/spec/shoes/builtin_methods_spec.rb +2 -2
- data/spec/shoes/button_spec.rb +4 -2
- data/spec/shoes/color_spec.rb +12 -12
- data/spec/shoes/common/attachable_spec.rb +32 -0
- data/spec/shoes/common/inspect_spec.rb +4 -4
- data/spec/shoes/common/remove_spec.rb +5 -5
- data/spec/shoes/common/rotate_spec.rb +1 -1
- data/spec/shoes/common/style_normalizer_spec.rb +4 -4
- data/spec/shoes/common/style_spec.rb +15 -11
- data/spec/shoes/common/translate_spec.rb +27 -0
- data/spec/shoes/dimension_spec.rb +111 -100
- data/spec/shoes/dimensions_spec.rb +344 -303
- data/spec/shoes/download_spec.rb +17 -17
- data/spec/shoes/flow_spec.rb +2 -2
- data/spec/shoes/framework_learning_spec.rb +3 -1
- data/spec/shoes/helpers/fake_absolute_element.rb +3 -2
- data/spec/shoes/helpers/fake_element.rb +3 -2
- data/spec/shoes/input_box_spec.rb +2 -2
- data/spec/shoes/internal_app_spec.rb +14 -14
- data/spec/shoes/link_spec.rb +18 -19
- data/spec/shoes/list_box_spec.rb +9 -8
- data/spec/shoes/oval_spec.rb +1 -1
- data/spec/shoes/point_spec.rb +3 -3
- data/spec/shoes/renamed_delegate_spec.rb +2 -2
- data/spec/shoes/shape_spec.rb +20 -20
- data/spec/shoes/shared_examples/common_methods.rb +2 -2
- data/spec/shoes/shared_examples/dsl.rb +2 -2
- data/spec/shoes/shared_examples/dsl/flow.rb +1 -1
- data/spec/shoes/shared_examples/dsl/pattern.rb +2 -2
- data/spec/shoes/shared_examples/dsl/rgb.rb +2 -2
- data/spec/shoes/shared_examples/dsl/shape.rb +11 -7
- data/spec/shoes/shared_examples/dsl/star.rb +44 -44
- data/spec/shoes/shared_examples/dsl/style.rb +1 -1
- data/spec/shoes/shared_examples/dsl/text_elements.rb +6 -3
- data/spec/shoes/shared_examples/dsl/video.rb +1 -1
- data/spec/shoes/shared_examples/dsl_app_context.rb +6 -5
- data/spec/shoes/shared_examples/hover.rb +2 -2
- data/spec/shoes/shared_examples/shared_element_method.rb +2 -2
- data/spec/shoes/shared_examples/slot.rb +32 -21
- data/spec/shoes/shared_examples/style.rb +1 -1
- data/spec/shoes/slot_spec.rb +24 -7
- data/spec/shoes/span_spec.rb +5 -5
- data/spec/shoes/spec_helper.rb +1 -1
- data/spec/shoes/stack_spec.rb +5 -5
- data/spec/shoes/text_block_dimensions_spec.rb +6 -3
- data/spec/shoes/text_block_spec.rb +13 -7
- data/spec/shoes/text_spec.rb +22 -0
- data/spec/shoes/ui/picker_spec.rb +3 -3
- data/spec/shoes/url_spec.rb +4 -4
- data/spec/shoes/widget_spec.rb +1 -1
- data/spec/shoes_spec.rb +3 -3
- data/spec/spec_helper.rb +8 -1
- metadata +17 -4
- data/bin/shoes +0 -1
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Shoes::Common::Translate do
|
4
|
+
let(:test_class) do
|
5
|
+
Class.new do
|
6
|
+
include Shoes::Common::Translate
|
7
|
+
|
8
|
+
attr_reader :translate
|
9
|
+
|
10
|
+
def initialize(translate)
|
11
|
+
@translate = translate
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'allows nil' do
|
17
|
+
subject = test_class.new(nil)
|
18
|
+
expect(subject.translate_left).to eq(0)
|
19
|
+
expect(subject.translate_top).to eq(0)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'sets values' do
|
23
|
+
subject = test_class.new([10, 20])
|
24
|
+
expect(subject.translate_left).to eq(10)
|
25
|
+
expect(subject.translate_top).to eq(20)
|
26
|
+
end
|
27
|
+
end
|
@@ -1,35 +1,37 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Shoes::Dimension do
|
4
|
-
subject {Shoes::Dimension.new parent_dimension}
|
5
|
-
let(:start) {10}
|
6
|
-
let(:extent) {21}
|
7
|
-
let(:parent_element_start) {34}
|
8
|
-
let(:parent_element_end) {83}
|
9
|
-
let(:parent_element_extent) {600}
|
10
|
-
let(:parent_dimension)
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
subject { Shoes::Dimension.new parent_dimension }
|
5
|
+
let(:start) { 10 }
|
6
|
+
let(:extent) { 21 }
|
7
|
+
let(:parent_element_start) { 34 }
|
8
|
+
let(:parent_element_end) { 83 }
|
9
|
+
let(:parent_element_extent) { 600 }
|
10
|
+
let(:parent_dimension) do
|
11
|
+
double 'parent_dimension',
|
12
|
+
element_start: parent_element_start,
|
13
|
+
element_end: parent_element_end,
|
14
|
+
element_extent: parent_element_extent
|
15
|
+
end
|
14
16
|
|
15
17
|
ONE_PIXEL = 1 unless const_defined?(:ONE_PIXEL) && ONE_PIXEL == 1
|
16
18
|
|
17
19
|
describe 'initialization' do
|
18
20
|
describe 'without arguments (even no parent)' do
|
19
|
-
subject {Shoes::Dimension.new nil}
|
20
|
-
|
21
|
-
its(:start) {should eq nil}
|
22
|
-
its(:end) {should eq nil}
|
23
|
-
its(:extent) {should eq nil}
|
24
|
-
its(:margin_start) {should eq 0}
|
25
|
-
its(:margin_end) {should eq 0}
|
26
|
-
its(:displace_start) {should eq 0}
|
27
|
-
it {is_expected.not_to be_positioned}
|
28
|
-
it {is_expected.not_to be_absolute_position}
|
21
|
+
subject { Shoes::Dimension.new nil }
|
22
|
+
|
23
|
+
its(:start) { should eq nil }
|
24
|
+
its(:end) { should eq nil }
|
25
|
+
its(:extent) { should eq nil }
|
26
|
+
its(:margin_start) { should eq 0 }
|
27
|
+
its(:margin_end) { should eq 0 }
|
28
|
+
its(:displace_start) { should eq 0 }
|
29
|
+
it { is_expected.not_to be_positioned }
|
30
|
+
it { is_expected.not_to be_absolute_position }
|
29
31
|
end
|
30
32
|
|
31
33
|
describe 'with a parent and being positioned itself' do
|
32
|
-
subject {Shoes::Dimension.new parent_dimension}
|
34
|
+
subject { Shoes::Dimension.new parent_dimension }
|
33
35
|
|
34
36
|
TESTING_OFFSET = 11
|
35
37
|
|
@@ -38,12 +40,12 @@ describe Shoes::Dimension do
|
|
38
40
|
subject.extent = 10
|
39
41
|
end
|
40
42
|
|
41
|
-
its(:start) {should eq TESTING_OFFSET}
|
42
|
-
its(:end) {should eq parent_element_end - subject.element_end}
|
43
|
+
its(:start) { should eq TESTING_OFFSET }
|
44
|
+
its(:end) { should eq parent_element_end - subject.element_end }
|
43
45
|
end
|
44
46
|
|
45
47
|
describe 'start as center' do
|
46
|
-
subject {Shoes::Dimension.new parent_dimension, true}
|
48
|
+
subject { Shoes::Dimension.new parent_dimension, true }
|
47
49
|
|
48
50
|
it 'takes start as the center' do
|
49
51
|
subject.extent = 100
|
@@ -54,12 +56,15 @@ describe Shoes::Dimension do
|
|
54
56
|
end
|
55
57
|
|
56
58
|
describe '#extent' do
|
57
|
-
let(:parent_element_extent) {600}
|
58
|
-
let(:parent_extent) {580}
|
59
|
-
|
60
|
-
|
59
|
+
let(:parent_element_extent) { 600 }
|
60
|
+
let(:parent_extent) { 580 }
|
61
|
+
|
62
|
+
let(:parent) do
|
63
|
+
double 'parent', element_extent: parent_element_extent,
|
64
|
+
extent: parent_extent
|
65
|
+
end
|
61
66
|
|
62
|
-
subject {Shoes::Dimension.new parent}
|
67
|
+
subject { Shoes::Dimension.new parent }
|
63
68
|
|
64
69
|
it 'gets and sets' do
|
65
70
|
subject.extent = extent
|
@@ -127,13 +132,13 @@ describe Shoes::Dimension do
|
|
127
132
|
it 'handles negative percent values' do
|
128
133
|
subject.extent = '-10%'
|
129
134
|
expect(subject.extent).to be_within(ONE_PIXEL).of 0.9 *
|
130
|
-
|
135
|
+
parent_element_extent
|
131
136
|
end
|
132
137
|
|
133
138
|
it 'handles percent values with floats' do
|
134
139
|
subject.extent = '20.5%'
|
135
140
|
expect(subject.extent).to be_within(ONE_PIXEL).of 0.205 *
|
136
|
-
|
141
|
+
parent_element_extent
|
137
142
|
end
|
138
143
|
|
139
144
|
it 'returns nil for invalid strings' do
|
@@ -144,14 +149,14 @@ describe Shoes::Dimension do
|
|
144
149
|
end
|
145
150
|
|
146
151
|
describe '#start' do
|
147
|
-
let(:start) {23}
|
152
|
+
let(:start) { 23 }
|
148
153
|
|
149
154
|
before :each do
|
150
155
|
subject.start = start
|
151
156
|
end
|
152
157
|
|
153
|
-
its(:start) {should eq start}
|
154
|
-
it {is_expected.to be_absolute_position}
|
158
|
+
its(:start) { should eq start }
|
159
|
+
it { is_expected.to be_absolute_position }
|
155
160
|
|
156
161
|
it 'can set a start relative to parent element_extent' do
|
157
162
|
subject.start = 0.3
|
@@ -167,7 +172,7 @@ describe Shoes::Dimension do
|
|
167
172
|
end
|
168
173
|
|
169
174
|
context '#without a parent' do
|
170
|
-
let(:parent_dimension) {nil}
|
175
|
+
let(:parent_dimension) { nil }
|
171
176
|
|
172
177
|
it 'just takes the relative value' do
|
173
178
|
subject.start = 0.8
|
@@ -177,19 +182,19 @@ describe Shoes::Dimension do
|
|
177
182
|
end
|
178
183
|
|
179
184
|
describe 'with no parent but set dimensions' do
|
180
|
-
subject {Shoes::Dimension.new}
|
185
|
+
subject { Shoes::Dimension.new }
|
181
186
|
|
182
187
|
before :each do
|
183
188
|
subject.absolute_start = 23
|
184
189
|
subject.extent = 45
|
185
190
|
end
|
186
191
|
|
187
|
-
its(:end) {should be_nil}
|
188
|
-
its(:start) {should be_nil}
|
192
|
+
its(:end) { should be_nil }
|
193
|
+
its(:start) { should be_nil }
|
189
194
|
end
|
190
195
|
|
191
196
|
describe '#absolute_start' do
|
192
|
-
let(:absolute_start) {8}
|
197
|
+
let(:absolute_start) { 8 }
|
193
198
|
|
194
199
|
before :each do
|
195
200
|
subject.absolute_start = absolute_start
|
@@ -199,7 +204,7 @@ describe Shoes::Dimension do
|
|
199
204
|
expect(subject.absolute_start).to eq absolute_start
|
200
205
|
end
|
201
206
|
|
202
|
-
it {is_expected.to be_positioned}
|
207
|
+
it { is_expected.to be_positioned }
|
203
208
|
end
|
204
209
|
|
205
210
|
describe '#absolute_end' do
|
@@ -217,19 +222,19 @@ describe Shoes::Dimension do
|
|
217
222
|
end
|
218
223
|
|
219
224
|
describe '#margins' do
|
220
|
-
let(:margin_start) {11}
|
221
|
-
let(:margin_end) {17}
|
225
|
+
let(:margin_start) { 11 }
|
226
|
+
let(:margin_end) { 17 }
|
222
227
|
|
223
228
|
before :each do
|
224
229
|
subject.margin_start = margin_start
|
225
230
|
subject.margin_end = margin_end
|
226
231
|
end
|
227
232
|
|
228
|
-
its(:margin_start) {should eq margin_start}
|
229
|
-
its(:margin_end) {should eq margin_end}
|
233
|
+
its(:margin_start) { should eq margin_start }
|
234
|
+
its(:margin_end) { should eq margin_end }
|
230
235
|
|
231
236
|
context 'absolute_start set' do
|
232
|
-
let(:absolute_start) {7}
|
237
|
+
let(:absolute_start) { 7 }
|
233
238
|
|
234
239
|
before :each do
|
235
240
|
subject.absolute_start = absolute_start
|
@@ -244,7 +249,7 @@ describe Shoes::Dimension do
|
|
244
249
|
end
|
245
250
|
|
246
251
|
context 'extent set' do
|
247
|
-
let(:extent) {67}
|
252
|
+
let(:extent) { 67 }
|
248
253
|
|
249
254
|
before :each do
|
250
255
|
subject.extent = extent
|
@@ -256,60 +261,64 @@ describe Shoes::Dimension do
|
|
256
261
|
|
257
262
|
it 'does influence element_end' do
|
258
263
|
expect(subject.element_end).to eq absolute_start + extent -
|
259
|
-
|
264
|
+
margin_end - ONE_PIXEL
|
260
265
|
end
|
261
266
|
end
|
262
267
|
|
263
268
|
context 'element_extent set' do
|
264
|
-
let(:element_extent) {77}
|
269
|
+
let(:element_extent) { 77 }
|
265
270
|
|
266
271
|
before :each do
|
267
272
|
subject.element_extent = element_extent
|
268
273
|
end
|
269
274
|
|
270
|
-
its(:element_extent) {should eq element_extent}
|
271
|
-
its(:extent) {should eq element_extent + margin_start + margin_end}
|
272
|
-
its(:element_end)
|
273
|
-
|
275
|
+
its(:element_extent) { should eq element_extent }
|
276
|
+
its(:extent) { should eq element_extent + margin_start + margin_end }
|
277
|
+
its(:element_end) do
|
278
|
+
should eq subject.element_start + element_extent - ONE_PIXEL
|
279
|
+
end
|
274
280
|
end
|
275
281
|
|
276
282
|
describe 'relative margins' do
|
277
|
-
let(:margin_start) {0.1}
|
278
|
-
let(:margin_end) {0.2}
|
283
|
+
let(:margin_start) { 0.1 }
|
284
|
+
let(:margin_end) { 0.2 }
|
279
285
|
|
280
|
-
its(:margin_start)
|
281
|
-
|
282
|
-
|
283
|
-
|
286
|
+
its(:margin_start) do
|
287
|
+
should be_within(ONE_PIXEL).of 0.1 * parent_element_extent
|
288
|
+
end
|
289
|
+
|
290
|
+
its(:margin_end) do
|
291
|
+
should be_within(ONE_PIXEL).of 0.2 * parent_element_extent
|
292
|
+
end
|
284
293
|
end
|
285
294
|
end
|
286
295
|
end
|
287
296
|
|
288
297
|
describe '#in_bounds?' do
|
289
|
-
let(:absolute_start) {20}
|
290
|
-
let(:extent) {100}
|
291
|
-
let(:absolute_end) {20 + 100 - ONE_PIXEL} # -1 due to pixel counting adjustment
|
298
|
+
let(:absolute_start) { 20 }
|
299
|
+
let(:extent) { 100 }
|
300
|
+
let(:absolute_end) { 20 + 100 - ONE_PIXEL } # -1 due to pixel counting adjustment
|
292
301
|
|
293
302
|
before :each do
|
294
303
|
subject.absolute_start = absolute_start
|
295
304
|
subject.extent = extent
|
296
305
|
end
|
297
306
|
|
298
|
-
its(:absolute_end) {should eq absolute_end}
|
299
|
-
|
300
|
-
it {is_expected.to be_in_bounds absolute_start}
|
301
|
-
it {is_expected.to be_in_bounds absolute_end}
|
302
|
-
it {is_expected.to be_in_bounds absolute_start + ONE_PIXEL}
|
303
|
-
it {is_expected.to be_in_bounds absolute_end - ONE_PIXEL}
|
304
|
-
it {is_expected.to be_in_bounds 40}
|
305
|
-
it {is_expected.to be_in_bounds 105}
|
306
|
-
it {is_expected.to be_in_bounds 20.021}
|
307
|
-
it {is_expected.not_to be_in_bounds absolute_end + ONE_PIXEL}
|
308
|
-
it {is_expected.not_to be_in_bounds absolute_start - ONE_PIXEL }
|
309
|
-
it {is_expected.not_to be_in_bounds(-5)}
|
310
|
-
it {is_expected.not_to be_in_bounds 0}
|
311
|
-
it {is_expected.not_to be_in_bounds 150}
|
312
|
-
it {is_expected.not_to be_in_bounds
|
307
|
+
its(:absolute_end) { should eq absolute_end }
|
308
|
+
|
309
|
+
it { is_expected.to be_in_bounds absolute_start }
|
310
|
+
it { is_expected.to be_in_bounds absolute_end }
|
311
|
+
it { is_expected.to be_in_bounds absolute_start + ONE_PIXEL }
|
312
|
+
it { is_expected.to be_in_bounds absolute_end - ONE_PIXEL }
|
313
|
+
it { is_expected.to be_in_bounds 40 }
|
314
|
+
it { is_expected.to be_in_bounds 105 }
|
315
|
+
it { is_expected.to be_in_bounds 20.021 }
|
316
|
+
it { is_expected.not_to be_in_bounds absolute_end + ONE_PIXEL }
|
317
|
+
it { is_expected.not_to be_in_bounds absolute_start - ONE_PIXEL }
|
318
|
+
it { is_expected.not_to be_in_bounds(-5) }
|
319
|
+
it { is_expected.not_to be_in_bounds 0 }
|
320
|
+
it { is_expected.not_to be_in_bounds 150 }
|
321
|
+
it { is_expected.not_to be_in_bounds 123_178 }
|
313
322
|
end
|
314
323
|
|
315
324
|
it 'can displace the placement' do
|
@@ -346,12 +355,12 @@ describe Shoes::Dimension do
|
|
346
355
|
end
|
347
356
|
|
348
357
|
describe Shoes::ParentDimension do
|
349
|
-
let(:parent) {Shoes::Dimension.new}
|
350
|
-
let(:parent_start) {7}
|
351
|
-
let(:parent_extent) {27}
|
352
|
-
let(:margin) {5}
|
358
|
+
let(:parent) { Shoes::Dimension.new }
|
359
|
+
let(:parent_start) { 7 }
|
360
|
+
let(:parent_extent) { 27 }
|
361
|
+
let(:margin) { 5 }
|
353
362
|
|
354
|
-
subject {Shoes::ParentDimension.new parent}
|
363
|
+
subject { Shoes::ParentDimension.new parent }
|
355
364
|
|
356
365
|
before :each do
|
357
366
|
parent.start = parent_start
|
@@ -359,19 +368,19 @@ describe Shoes::Dimension do
|
|
359
368
|
end
|
360
369
|
|
361
370
|
describe 'it takes some parent values if no values are set' do
|
362
|
-
its(:extent) {should eq parent_extent}
|
371
|
+
its(:extent) { should eq parent_extent }
|
363
372
|
|
364
|
-
its(:margin_start) {should eq 0}
|
365
|
-
its(:margin_end) {should eq 0}
|
373
|
+
its(:margin_start) { should eq 0 }
|
374
|
+
its(:margin_end) { should eq 0 }
|
366
375
|
|
367
376
|
context 'with parent absolute_start set' do
|
368
377
|
before :each do
|
369
378
|
parent.absolute_start = 11
|
370
379
|
end
|
371
380
|
|
372
|
-
its(:absolute_start) {should eq parent.element_start}
|
373
|
-
its(:element_start) {should eq parent.element_start}
|
374
|
-
its(:element_end) {should eq parent.element_end}
|
381
|
+
its(:absolute_start) { should eq parent.element_start }
|
382
|
+
its(:element_start) { should eq parent.element_start }
|
383
|
+
its(:element_end) { should eq parent.element_end }
|
375
384
|
end
|
376
385
|
|
377
386
|
context 'but it takes the parent margins into account' do
|
@@ -380,7 +389,7 @@ describe Shoes::Dimension do
|
|
380
389
|
parent.margin_end = margin
|
381
390
|
end
|
382
391
|
|
383
|
-
its(:extent) {is_expected.to eq 17}
|
392
|
+
its(:extent) { is_expected.to eq 17 }
|
384
393
|
end
|
385
394
|
end
|
386
395
|
|
@@ -391,9 +400,9 @@ describe Shoes::Dimension do
|
|
391
400
|
parent.absolute_start = 17
|
392
401
|
end
|
393
402
|
|
394
|
-
its(:start) {should eq start}
|
395
|
-
its(:extent) {should eq extent}
|
396
|
-
its(:absolute_start) {should eq 17}
|
403
|
+
its(:start) { should eq start }
|
404
|
+
its(:extent) { should eq extent }
|
405
|
+
its(:absolute_start) { should eq 17 }
|
397
406
|
|
398
407
|
it 'can still handle special values like a negative extent' do
|
399
408
|
subject.extent = -10
|
@@ -412,15 +421,17 @@ describe Shoes::Dimension do
|
|
412
421
|
end
|
413
422
|
|
414
423
|
describe 'it obeys parent bounds' do
|
415
|
-
let(:parent_dimension)
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
+
let(:parent_dimension) do
|
425
|
+
double 'parent_dimension',
|
426
|
+
element_start: 10,
|
427
|
+
element_end: 20,
|
428
|
+
absolute_start: 10,
|
429
|
+
absolute_end: 20,
|
430
|
+
extent: 10,
|
431
|
+
element_extent: 10
|
432
|
+
end
|
433
|
+
|
434
|
+
subject { Shoes::ParentDimension.new parent_dimension }
|
424
435
|
|
425
436
|
it "gets the parent element_extent" do
|
426
437
|
expect(subject.extent).to eq(10)
|
@@ -1,33 +1,39 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Shoes::Dimensions do
|
4
|
-
let(:parent_left) {left}
|
5
|
-
let(:parent_top) {top}
|
6
|
-
let(:parent_width) {width}
|
7
|
-
let(:parent_height) {height}
|
8
|
-
let(:parent) {Shoes::AbsoluteDimensions.new parent_left, parent_top, parent_width, parent_height}
|
9
|
-
|
10
|
-
let(:left) {10}
|
11
|
-
let(:top) {20}
|
12
|
-
let(:width) {100}
|
13
|
-
let(:height) {150}
|
14
|
-
let(:right) {17}
|
15
|
-
let(:bottom) {23}
|
4
|
+
let(:parent_left) { left }
|
5
|
+
let(:parent_top) { top }
|
6
|
+
let(:parent_width) { width }
|
7
|
+
let(:parent_height) { height }
|
8
|
+
let(:parent) { Shoes::AbsoluteDimensions.new parent_left, parent_top, parent_width, parent_height }
|
9
|
+
|
10
|
+
let(:left) { 10 }
|
11
|
+
let(:top) { 20 }
|
12
|
+
let(:width) { 100 }
|
13
|
+
let(:height) { 150 }
|
14
|
+
let(:right) { 17 }
|
15
|
+
let(:bottom) { 23 }
|
16
16
|
let(:opts) { {} }
|
17
|
-
subject {Shoes::Dimensions.new parent, left, top, width, height, opts}
|
17
|
+
subject { Shoes::Dimensions.new parent, left, top, width, height, opts }
|
18
18
|
|
19
19
|
shared_context 'margins' do
|
20
|
-
let(:margin_left) {3}
|
21
|
-
let(:margin_top) {5}
|
22
|
-
let(:margin_right) {7}
|
23
|
-
let(:margin_bottom) {11}
|
24
|
-
let(:opts)
|
25
|
-
|
20
|
+
let(:margin_left) { 3 }
|
21
|
+
let(:margin_top) { 5 }
|
22
|
+
let(:margin_right) { 7 }
|
23
|
+
let(:margin_bottom) { 11 }
|
24
|
+
let(:opts) do
|
25
|
+
{
|
26
|
+
margin_left: margin_left,
|
27
|
+
margin_top: margin_top,
|
28
|
+
margin_right: margin_right,
|
29
|
+
margin_bottom: margin_bottom
|
30
|
+
}
|
31
|
+
end
|
26
32
|
end
|
27
33
|
|
28
34
|
shared_context 'element dimensions set' do
|
29
|
-
let(:element_width) {43}
|
30
|
-
let(:element_height) {29}
|
35
|
+
let(:element_width) { 43 }
|
36
|
+
let(:element_height) { 29 }
|
31
37
|
|
32
38
|
before :each do
|
33
39
|
subject.element_width = element_width
|
@@ -41,66 +47,66 @@ describe Shoes::Dimensions do
|
|
41
47
|
include InspectHelpers
|
42
48
|
|
43
49
|
describe 'without arguments (defaults)' do
|
44
|
-
subject {Shoes::Dimensions.new parent}
|
45
|
-
|
46
|
-
its(:left) {should be_nil}
|
47
|
-
its(:top) {should be_nil}
|
48
|
-
its(:width) {should eq nil}
|
49
|
-
its(:height) {should eq nil}
|
50
|
-
its(:absolutely_positioned?) {should be_falsey}
|
51
|
-
its(:absolute_x_position?) {should be_falsey}
|
52
|
-
its(:absolute_y_position?) {should be_falsey}
|
53
|
-
its(:absolute_left_position?) {should be_falsey}
|
54
|
-
its(:absolute_top_position?) {should be_falsey}
|
55
|
-
its(:absolute_right_position?) {should be_falsey}
|
56
|
-
its(:absolute_bottom_position?) {should be_falsey}
|
57
|
-
its(:margin) {should == [0, 0, 0, 0]}
|
58
|
-
its(:margin_left) {should
|
59
|
-
its(:margin_top) {should
|
60
|
-
its(:margin_right) {should
|
61
|
-
its(:margin_bottom) {should
|
62
|
-
its(:element_width) {should
|
63
|
-
its(:element_height) {should
|
64
|
-
its(:to_s) {should == "(Shoes::Dimensions)"}
|
65
|
-
its(:inspect) {should match(/[(]Shoes::Dimensions:#{shoes_object_id_pattern} relative:[(]_,_[)]->[(]_,_[)] absolute:[(]_,_[)]->[(]_,_[)] _x_[)]/)}
|
50
|
+
subject { Shoes::Dimensions.new parent }
|
51
|
+
|
52
|
+
its(:left) { should be_nil }
|
53
|
+
its(:top) { should be_nil }
|
54
|
+
its(:width) { should eq nil }
|
55
|
+
its(:height) { should eq nil }
|
56
|
+
its(:absolutely_positioned?) { should be_falsey }
|
57
|
+
its(:absolute_x_position?) { should be_falsey }
|
58
|
+
its(:absolute_y_position?) { should be_falsey }
|
59
|
+
its(:absolute_left_position?) { should be_falsey }
|
60
|
+
its(:absolute_top_position?) { should be_falsey }
|
61
|
+
its(:absolute_right_position?) { should be_falsey }
|
62
|
+
its(:absolute_bottom_position?) { should be_falsey }
|
63
|
+
its(:margin) { should == [0, 0, 0, 0] }
|
64
|
+
its(:margin_left) { should be_zero }
|
65
|
+
its(:margin_top) { should be_zero }
|
66
|
+
its(:margin_right) { should be_zero }
|
67
|
+
its(:margin_bottom) { should be_zero }
|
68
|
+
its(:element_width) { should be_nil }
|
69
|
+
its(:element_height) { should be_nil }
|
70
|
+
its(:to_s) { should == "(Shoes::Dimensions)" }
|
71
|
+
its(:inspect) { should match(/[(]Shoes::Dimensions:#{shoes_object_id_pattern} relative:[(]_,_[)]->[(]_,_[)] absolute:[(]_,_[)]->[(]_,_[)] _x_[)]/) }
|
66
72
|
end
|
67
73
|
|
68
74
|
describe 'with 2 arguments' do
|
69
|
-
subject {Shoes::Dimensions.new parent, left, top}
|
70
|
-
|
71
|
-
its(:left) {should eq left}
|
72
|
-
its(:top) {should eq top}
|
73
|
-
its(:width) {should eq nil}
|
74
|
-
its(:height) {should eq nil}
|
75
|
-
its(:absolutely_positioned?) {should be_truthy}
|
76
|
-
its(:absolute_x_position?) {should be_truthy}
|
77
|
-
its(:absolute_y_position?) {should be_truthy}
|
78
|
-
its(:absolute_left_position?) {should be_truthy}
|
79
|
-
its(:absolute_top_position?) {should be_truthy}
|
80
|
-
its(:absolute_right_position?) {should be_falsey}
|
81
|
-
its(:absolute_bottom_position?) {should be_falsey}
|
82
|
-
its(:inspect) {should match(/[(]Shoes::Dimensions:#{shoes_object_id_pattern} relative:[(]#{left},#{top}[)]->[(]_,_[)] absolute:[(]_,_[)]->[(]_,_[)] _x_[)]/)}
|
75
|
+
subject { Shoes::Dimensions.new parent, left, top }
|
76
|
+
|
77
|
+
its(:left) { should eq left }
|
78
|
+
its(:top) { should eq top }
|
79
|
+
its(:width) { should eq nil }
|
80
|
+
its(:height) { should eq nil }
|
81
|
+
its(:absolutely_positioned?) { should be_truthy }
|
82
|
+
its(:absolute_x_position?) { should be_truthy }
|
83
|
+
its(:absolute_y_position?) { should be_truthy }
|
84
|
+
its(:absolute_left_position?) { should be_truthy }
|
85
|
+
its(:absolute_top_position?) { should be_truthy }
|
86
|
+
its(:absolute_right_position?) { should be_falsey }
|
87
|
+
its(:absolute_bottom_position?) { should be_falsey }
|
88
|
+
its(:inspect) { should match(/[(]Shoes::Dimensions:#{shoes_object_id_pattern} relative:[(]#{left},#{top}[)]->[(]_,_[)] absolute:[(]_,_[)]->[(]_,_[)] _x_[)]/) }
|
83
89
|
end
|
84
90
|
|
85
91
|
describe 'with 4 arguments' do
|
86
|
-
subject {Shoes::Dimensions.new parent, left, top, width, height}
|
92
|
+
subject { Shoes::Dimensions.new parent, left, top, width, height }
|
87
93
|
|
88
|
-
its(:left) {should eq left}
|
89
|
-
its(:top) {should eq top}
|
90
|
-
its(:width) {should eq width}
|
91
|
-
its(:height) {should eq height}
|
92
|
-
its(:element_width) {should == width}
|
93
|
-
its(:element_height) {should == height}
|
94
|
-
its(:inspect) {should match(/[(]Shoes::Dimensions:#{shoes_object_id_pattern} relative:[(]#{left},#{top}[)]->[(]_,_[)] absolute:[(]_,_[)]->[(]_,_[)] #{width}x#{height}[)]/)}
|
94
|
+
its(:left) { should eq left }
|
95
|
+
its(:top) { should eq top }
|
96
|
+
its(:width) { should eq width }
|
97
|
+
its(:height) { should eq height }
|
98
|
+
its(:element_width) { should == width }
|
99
|
+
its(:element_height) { should == height }
|
100
|
+
its(:inspect) { should match(/[(]Shoes::Dimensions:#{shoes_object_id_pattern} relative:[(]#{left},#{top}[)]->[(]_,_[)] absolute:[(]_,_[)]->[(]_,_[)] #{width}x#{height}[)]/) }
|
95
101
|
end
|
96
102
|
|
97
103
|
describe 'with relative width and height' do
|
98
|
-
subject {Shoes::Dimensions.new parent, left, top, 0.5, 0.5}
|
104
|
+
subject { Shoes::Dimensions.new parent, left, top, 0.5, 0.5 }
|
99
105
|
|
100
|
-
its(:left) {should eq left}
|
101
|
-
its(:top) {should eq top}
|
102
|
-
its(:width) {should be_within(ONE_PIXEL).of 0.5 * parent.width}
|
103
|
-
its(:height) {should be_within(ONE_PIXEL).of 0.5 * parent.height}
|
106
|
+
its(:left) { should eq left }
|
107
|
+
its(:top) { should eq top }
|
108
|
+
its(:width) { should be_within(ONE_PIXEL).of 0.5 * parent.width }
|
109
|
+
its(:height) { should be_within(ONE_PIXEL).of 0.5 * parent.height }
|
104
110
|
|
105
111
|
describe 'width/height change of the parent' do
|
106
112
|
# note that here the first assertion/call is necessary as otherwise
|
@@ -121,12 +127,12 @@ describe Shoes::Dimensions do
|
|
121
127
|
end
|
122
128
|
|
123
129
|
describe 'a parent with margins' do
|
124
|
-
let(:parent)
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
subject {Shoes::Dimensions.new parent, left, top, 1.0, 1.0}
|
130
|
+
let(:parent) do
|
131
|
+
Shoes::AbsoluteDimensions.new parent_left, parent_top, parent_width,
|
132
|
+
parent_height, margin: 20
|
133
|
+
end
|
134
|
+
|
135
|
+
subject { Shoes::Dimensions.new parent, left, top, 1.0, 1.0 }
|
130
136
|
|
131
137
|
it 'uses the element_width to calculate its own relative width' do
|
132
138
|
expect(subject.width).to eq parent.element_width
|
@@ -136,147 +142,157 @@ describe Shoes::Dimensions do
|
|
136
142
|
expect(subject.width).to be < parent.width
|
137
143
|
end
|
138
144
|
|
139
|
-
its(:height) {should eq parent.element_height}
|
145
|
+
its(:height) { should eq parent.element_height }
|
140
146
|
end
|
141
147
|
end
|
142
148
|
|
143
149
|
describe 'with percentages' do
|
144
150
|
describe 'with whole integers' do
|
145
|
-
subject {Shoes::Dimensions.new parent, left, top, "50%", "50%"}
|
146
|
-
its(:width) {should be_within(ONE_PIXEL).of 0.5 * parent.width}
|
147
|
-
its(:height) {should be_within(ONE_PIXEL).of 0.5 * parent.height}
|
151
|
+
subject { Shoes::Dimensions.new parent, left, top, "50%", "50%" }
|
152
|
+
its(:width) { should be_within(ONE_PIXEL).of 0.5 * parent.width }
|
153
|
+
its(:height) { should be_within(ONE_PIXEL).of 0.5 * parent.height }
|
148
154
|
end
|
149
155
|
|
150
156
|
describe 'with floats' do
|
151
|
-
subject {Shoes::Dimensions.new parent, left, top, "50.0%", "50.00%"}
|
152
|
-
its(:width) {should be_within(ONE_PIXEL).of 0.5 * parent.width}
|
153
|
-
its(:height) {should be_within(ONE_PIXEL).of 0.5 * parent.height}
|
157
|
+
subject { Shoes::Dimensions.new parent, left, top, "50.0%", "50.00%" }
|
158
|
+
its(:width) { should be_within(ONE_PIXEL).of 0.5 * parent.width }
|
159
|
+
its(:height) { should be_within(ONE_PIXEL).of 0.5 * parent.height }
|
154
160
|
end
|
155
161
|
|
156
162
|
describe 'with negatives' do
|
157
|
-
subject {Shoes::Dimensions.new parent, left, top, "-10.0%", "-10.00%"}
|
158
|
-
its(:width) {should be_within(ONE_PIXEL).of 0.9 * parent.width}
|
159
|
-
its(:height) {should be_within(ONE_PIXEL).of 0.9 * parent.height}
|
163
|
+
subject { Shoes::Dimensions.new parent, left, top, "-10.0%", "-10.00%" }
|
164
|
+
its(:width) { should be_within(ONE_PIXEL).of 0.9 * parent.width }
|
165
|
+
its(:height) { should be_within(ONE_PIXEL).of 0.9 * parent.height }
|
160
166
|
end
|
161
167
|
|
162
168
|
describe 'with padded strings' do
|
163
|
-
subject
|
164
|
-
|
165
|
-
|
169
|
+
subject do
|
170
|
+
Shoes::Dimensions.new parent, left, top, " 50 % ", "\t- 50 %\n"
|
171
|
+
end
|
172
|
+
|
173
|
+
its(:width) { should be_within(ONE_PIXEL).of 0.5 * parent.width }
|
174
|
+
its(:height) { should be_within(ONE_PIXEL).of 0.5 * parent.height }
|
166
175
|
end
|
167
176
|
end
|
168
177
|
|
169
178
|
describe 'with strings' do
|
170
179
|
describe 'with integer strings' do
|
171
|
-
subject {Shoes::Dimensions.new parent, "22", "20", "10", "10"}
|
180
|
+
subject { Shoes::Dimensions.new parent, "22", "20", "10", "10" }
|
172
181
|
|
173
|
-
its(:left) {should eq 22}
|
174
|
-
its(:top) {should eq 20}
|
175
|
-
its(:width) {should eq 10}
|
176
|
-
its(:height) {should eq 10}
|
182
|
+
its(:left) { should eq 22 }
|
183
|
+
its(:top) { should eq 20 }
|
184
|
+
its(:width) { should eq 10 }
|
185
|
+
its(:height) { should eq 10 }
|
177
186
|
end
|
178
187
|
|
179
188
|
describe 'with strings px' do
|
180
|
-
subject {Shoes::Dimensions.new parent, "10px", "10px", "0px", "100px"}
|
189
|
+
subject { Shoes::Dimensions.new parent, "10px", "10px", "0px", "100px" }
|
181
190
|
|
182
|
-
its(:left) {should eq 10}
|
183
|
-
its(:top) {should eq 10}
|
184
|
-
its(:width) {should eq 0}
|
185
|
-
its(:height) {should eq 100}
|
191
|
+
its(:left) { should eq 10 }
|
192
|
+
its(:top) { should eq 10 }
|
193
|
+
its(:width) { should eq 0 }
|
194
|
+
its(:height) { should eq 100 }
|
186
195
|
end
|
187
196
|
|
188
197
|
describe 'white space with px is also ok' do
|
189
|
-
subject
|
198
|
+
subject do
|
199
|
+
Shoes::Dimensions.new parent, "10 px", "20 px", "30px", "55 px"
|
200
|
+
end
|
190
201
|
|
191
|
-
its(:left) {should eq 10}
|
192
|
-
its(:top) {should eq 20}
|
193
|
-
its(:width) {should eq 30}
|
194
|
-
its(:height) {should eq 55}
|
202
|
+
its(:left) { should eq 10 }
|
203
|
+
its(:top) { should eq 20 }
|
204
|
+
its(:width) { should eq 30 }
|
205
|
+
its(:height) { should eq 55 }
|
195
206
|
end
|
196
207
|
|
197
208
|
describe 'with invalid integer strings' do
|
198
|
-
subject
|
209
|
+
subject do
|
210
|
+
Shoes::Dimensions.new parent, "p100px", "Hell0", "hell0", "glob"
|
211
|
+
end
|
199
212
|
|
200
|
-
its(:left) {should be_nil}
|
201
|
-
its(:top) {should be_nil}
|
202
|
-
its(:width) {should be_nil}
|
203
|
-
its(:height) {should be_nil}
|
213
|
+
its(:left) { should be_nil }
|
214
|
+
its(:top) { should be_nil }
|
215
|
+
its(:width) { should be_nil }
|
216
|
+
its(:height) { should be_nil }
|
204
217
|
end
|
205
218
|
|
206
219
|
describe 'with negative values' do
|
207
|
-
let(:parent_width) {200}
|
208
|
-
let(:parent_height) {300}
|
209
|
-
subject {Shoes::Dimensions.new parent, "- 100", "-20px", "- 50px", "- 80"}
|
220
|
+
let(:parent_width) { 200 }
|
221
|
+
let(:parent_height) { 300 }
|
210
222
|
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
223
|
+
subject do
|
224
|
+
Shoes::Dimensions.new parent, "- 100", "-20px", "- 50px", "- 80"
|
225
|
+
end
|
226
|
+
|
227
|
+
its(:left) { should eq(-100) }
|
228
|
+
its(:top) { should eq(-20) }
|
229
|
+
its(:width) { should eq(parent_width - 50) }
|
230
|
+
its(:height) { should eq(parent_height - 80) }
|
215
231
|
end
|
216
232
|
end
|
217
233
|
|
218
234
|
describe 'with negative width and height' do
|
219
235
|
let(:width) { -50 }
|
220
236
|
let(:height) { -50 }
|
221
|
-
subject {Shoes::Dimensions.new parent, left, top, width, height}
|
237
|
+
subject { Shoes::Dimensions.new parent, left, top, width, height }
|
222
238
|
|
223
|
-
its(:width) {should eq parent.width + width}
|
224
|
-
its(:height) {should eq parent.height + height}
|
239
|
+
its(:width) { should eq parent.width + width }
|
240
|
+
its(:height) { should eq parent.height + height }
|
225
241
|
end
|
226
242
|
|
227
243
|
describe 'with relative negative width and height' do
|
228
|
-
let(:width) {-0.2}
|
229
|
-
let(:height) {-0.2}
|
244
|
+
let(:width) { -0.2 }
|
245
|
+
let(:height) { -0.2 }
|
230
246
|
|
231
|
-
its(:width) {should be_within(ONE_PIXEL).of 0.8 * parent.width}
|
232
|
-
its(:height) {should be_within(ONE_PIXEL).of 0.8 * parent.height}
|
247
|
+
its(:width) { should be_within(ONE_PIXEL).of 0.8 * parent.width }
|
248
|
+
its(:height) { should be_within(ONE_PIXEL).of 0.8 * parent.height }
|
233
249
|
end
|
234
250
|
|
235
251
|
describe 'with a hash' do
|
236
|
-
subject
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
its(:left) {should eq left}
|
242
|
-
its(:top) {should eq top}
|
243
|
-
its(:width) {should eq width}
|
244
|
-
its(:height) {should eq height}
|
245
|
-
its(:absolutely_positioned?) {should be_truthy}
|
246
|
-
its(:absolute_x_position?) {should be_truthy}
|
247
|
-
its(:absolute_y_position?) {should be_truthy}
|
252
|
+
subject do
|
253
|
+
Shoes::Dimensions.new parent, left: left, top: top, width: width,
|
254
|
+
height: height
|
255
|
+
end
|
256
|
+
|
257
|
+
its(:left) { should eq left }
|
258
|
+
its(:top) { should eq top }
|
259
|
+
its(:width) { should eq width }
|
260
|
+
its(:height) { should eq height }
|
261
|
+
its(:absolutely_positioned?) { should be_truthy }
|
262
|
+
its(:absolute_x_position?) { should be_truthy }
|
263
|
+
its(:absolute_y_position?) { should be_truthy }
|
248
264
|
|
249
265
|
context 'missing width' do
|
250
|
-
subject
|
251
|
-
|
252
|
-
|
266
|
+
subject do
|
267
|
+
Shoes::Dimensions.new parent, left: left, top: top, height: height
|
268
|
+
end
|
253
269
|
|
254
|
-
its(:width) {should eq nil}
|
270
|
+
its(:width) { should eq nil }
|
255
271
|
end
|
256
272
|
|
257
273
|
describe 'with right and bottom' do
|
258
|
-
subject {Shoes::Dimensions.new parent, right: right, bottom: bottom}
|
274
|
+
subject { Shoes::Dimensions.new parent, right: right, bottom: bottom }
|
259
275
|
|
260
|
-
its(:right) {should eq right}
|
261
|
-
its(:bottom) {should eq bottom}
|
262
|
-
its(:absolute_x_position?) {should be_truthy}
|
263
|
-
its(:absolute_y_position?) {should be_truthy}
|
264
|
-
its(:absolute_left_position?) {should be_falsey}
|
265
|
-
its(:absolute_top_position?) {should be_falsey}
|
266
|
-
its(:absolute_right_position?) {should be_truthy}
|
267
|
-
its(:absolute_bottom_position?) {should be_truthy}
|
276
|
+
its(:right) { should eq right }
|
277
|
+
its(:bottom) { should eq bottom }
|
278
|
+
its(:absolute_x_position?) { should be_truthy }
|
279
|
+
its(:absolute_y_position?) { should be_truthy }
|
280
|
+
its(:absolute_left_position?) { should be_falsey }
|
281
|
+
its(:absolute_top_position?) { should be_falsey }
|
282
|
+
its(:absolute_right_position?) { should be_truthy }
|
283
|
+
its(:absolute_bottom_position?) { should be_truthy }
|
268
284
|
end
|
269
285
|
end
|
270
286
|
|
271
287
|
describe 'absolute_left and _top' do
|
272
|
-
its(:absolute_left) {should eq nil}
|
273
|
-
its(:absolute_top) {should eq nil}
|
274
|
-
it {is_expected.not_to be_positioned}
|
288
|
+
its(:absolute_left) { should eq nil }
|
289
|
+
its(:absolute_top) { should eq nil }
|
290
|
+
it { is_expected.not_to be_positioned }
|
275
291
|
end
|
276
292
|
|
277
293
|
describe 'absolute extra values' do
|
278
|
-
let(:absolute_left) {7}
|
279
|
-
let(:absolute_top) {13}
|
294
|
+
let(:absolute_left) { 7 }
|
295
|
+
let(:absolute_top) { 13 }
|
280
296
|
|
281
297
|
before :each do
|
282
298
|
subject.absolute_left = absolute_left
|
@@ -321,12 +337,12 @@ describe Shoes::Dimensions do
|
|
321
337
|
|
322
338
|
it 'returns an element_right' do
|
323
339
|
expect(subject.element_right).to eq subject.element_left +
|
324
|
-
|
340
|
+
element_width - ONE_PIXEL
|
325
341
|
end
|
326
342
|
|
327
343
|
it 'returns an element_bottom' do
|
328
344
|
expect(subject.element_bottom).to eq subject.element_top +
|
329
|
-
|
345
|
+
element_height - ONE_PIXEL
|
330
346
|
end
|
331
347
|
end
|
332
348
|
end
|
@@ -385,7 +401,8 @@ describe Shoes::Dimensions do
|
|
385
401
|
end
|
386
402
|
|
387
403
|
it 'sets height to element_height plus margins' do
|
388
|
-
expect(subject.height).to eq margin_top + element_height +
|
404
|
+
expect(subject.height).to eq margin_top + element_height +
|
405
|
+
margin_bottom
|
389
406
|
end
|
390
407
|
|
391
408
|
it 'sets that value for element_width' do
|
@@ -401,12 +418,12 @@ describe Shoes::Dimensions do
|
|
401
418
|
|
402
419
|
describe 'centered (e.g. left and top are seen as coords for the center)' do
|
403
420
|
describe '5 arguments' do
|
404
|
-
subject {Shoes::Dimensions.new parent, 100, 50, 40, 20, center: true}
|
421
|
+
subject { Shoes::Dimensions.new parent, 100, 50, 40, 20, center: true }
|
405
422
|
|
406
|
-
its(:left) {should eq 80}
|
407
|
-
its(:top) {should eq 40}
|
408
|
-
its(:width) {should eq 40}
|
409
|
-
its(:height) {should eq 20}
|
423
|
+
its(:left) { should eq 80 }
|
424
|
+
its(:top) { should eq 40 }
|
425
|
+
its(:width) { should eq 40 }
|
426
|
+
its(:height) { should eq 20 }
|
410
427
|
|
411
428
|
it 'reacts to a width change' do
|
412
429
|
expect(subject.left).to eq(80)
|
@@ -422,31 +439,30 @@ describe Shoes::Dimensions do
|
|
422
439
|
end
|
423
440
|
|
424
441
|
describe 'hash' do
|
425
|
-
subject
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
center: true }
|
442
|
+
subject do
|
443
|
+
Shoes::Dimensions.new parent, left: 100, top: 50, width: 40, height: 20,
|
444
|
+
center: true
|
445
|
+
end
|
430
446
|
|
431
|
-
its(:left) {should eq 80}
|
432
|
-
its(:top) {should eq 40}
|
433
|
-
its(:width) {should eq 40}
|
434
|
-
its(:height) {should eq 20}
|
447
|
+
its(:left) { should eq 80 }
|
448
|
+
its(:top) { should eq 40 }
|
449
|
+
its(:width) { should eq 40 }
|
450
|
+
its(:height) { should eq 20 }
|
435
451
|
end
|
436
452
|
end
|
437
453
|
|
438
454
|
describe 'additional dimension methods' do
|
439
455
|
describe 'without height and width' do
|
440
|
-
let(:width) {nil}
|
441
|
-
let(:height) {nil}
|
456
|
+
let(:width) { nil }
|
457
|
+
let(:height) { nil }
|
442
458
|
end
|
443
459
|
end
|
444
460
|
|
445
461
|
describe 'in_bounds?' do
|
446
|
-
let(:left) {10}
|
447
|
-
let(:top) {20}
|
448
|
-
let(:width) {100}
|
449
|
-
let(:height) {150}
|
462
|
+
let(:left) { 10 }
|
463
|
+
let(:top) { 20 }
|
464
|
+
let(:width) { 100 }
|
465
|
+
let(:height) { 150 }
|
450
466
|
|
451
467
|
describe 'absolute position same as offset' do
|
452
468
|
before :each do
|
@@ -454,94 +470,103 @@ describe Shoes::Dimensions do
|
|
454
470
|
subject.absolute_top = top
|
455
471
|
end
|
456
472
|
|
457
|
-
it {is_expected.to be_in_bounds 30, 40}
|
458
|
-
it {is_expected.to be_in_bounds left, top}
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
it {is_expected.not_to be_in_bounds
|
466
|
-
it {is_expected.not_to be_in_bounds
|
467
|
-
it {is_expected.not_to be_in_bounds
|
468
|
-
it {is_expected.not_to be_in_bounds
|
469
|
-
it {is_expected.not_to be_in_bounds
|
473
|
+
it { is_expected.to be_in_bounds 30, 40 }
|
474
|
+
it { is_expected.to be_in_bounds left, top }
|
475
|
+
|
476
|
+
it do
|
477
|
+
is_expected.to be_in_bounds left + width - ONE_PIXEL,
|
478
|
+
top + height - ONE_PIXEL
|
479
|
+
end
|
480
|
+
|
481
|
+
it { is_expected.not_to be_in_bounds left + width, top + height }
|
482
|
+
it { is_expected.not_to be_in_bounds 30, top + height }
|
483
|
+
it { is_expected.not_to be_in_bounds left + width, 40 }
|
484
|
+
it { is_expected.not_to be_in_bounds 0, 0 }
|
485
|
+
it { is_expected.not_to be_in_bounds 0, 40 }
|
486
|
+
it { is_expected.not_to be_in_bounds 40, 0 }
|
487
|
+
it { is_expected.not_to be_in_bounds 200, 50 }
|
488
|
+
it { is_expected.not_to be_in_bounds 80, 400 }
|
489
|
+
it { is_expected.not_to be_in_bounds 1000, 1000 }
|
470
490
|
end
|
471
491
|
|
472
492
|
describe 'with absolute position differing from relative' do
|
473
|
-
let(:absolute_left) {150}
|
474
|
-
let(:absolute_top) {50}
|
493
|
+
let(:absolute_left) { 150 }
|
494
|
+
let(:absolute_top) { 50 }
|
475
495
|
|
476
496
|
before :each do
|
477
497
|
subject.absolute_left = absolute_left
|
478
498
|
subject.absolute_top = absolute_top
|
479
499
|
end
|
480
500
|
|
481
|
-
it {is_expected.not_to be_in_bounds 30, 40}
|
482
|
-
it {is_expected.not_to be_in_bounds left, top}
|
483
|
-
it {is_expected.not_to be_in_bounds 149, 75}
|
484
|
-
it {is_expected.to be_in_bounds 200, absolute_top}
|
485
|
-
it {is_expected.to be_in_bounds absolute_left, absolute_top}
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
501
|
+
it { is_expected.not_to be_in_bounds 30, 40 }
|
502
|
+
it { is_expected.not_to be_in_bounds left, top }
|
503
|
+
it { is_expected.not_to be_in_bounds 149, 75 }
|
504
|
+
it { is_expected.to be_in_bounds 200, absolute_top }
|
505
|
+
it { is_expected.to be_in_bounds absolute_left, absolute_top }
|
506
|
+
|
507
|
+
it do
|
508
|
+
is_expected.to be_in_bounds absolute_left + width - ONE_PIXEL,
|
509
|
+
absolute_top + height - ONE_PIXEL
|
510
|
+
end
|
511
|
+
|
512
|
+
it { is_expected.not_to be_in_bounds 80, 400 }
|
490
513
|
end
|
491
514
|
end
|
492
515
|
|
493
516
|
describe 'absolute positioning' do
|
494
|
-
subject {Shoes::Dimensions.new parent}
|
495
|
-
its(:absolutely_positioned?) {should be_falsey}
|
517
|
+
subject { Shoes::Dimensions.new parent }
|
518
|
+
its(:absolutely_positioned?) { should be_falsey }
|
496
519
|
|
497
520
|
shared_examples_for 'absolute_x_position' do
|
498
|
-
its(:absolute_x_position?) {should be_truthy}
|
499
|
-
its(:absolute_y_position?) {should be_falsey}
|
500
|
-
its(:absolutely_positioned?) {should be_truthy}
|
521
|
+
its(:absolute_x_position?) { should be_truthy }
|
522
|
+
its(:absolute_y_position?) { should be_falsey }
|
523
|
+
its(:absolutely_positioned?) { should be_truthy }
|
501
524
|
end
|
502
525
|
|
503
526
|
describe 'changing left' do
|
504
|
-
before
|
527
|
+
before { subject.left = left }
|
505
528
|
it_behaves_like 'absolute_x_position'
|
506
529
|
end
|
507
530
|
|
508
531
|
describe 'chaning right' do
|
509
|
-
before
|
532
|
+
before { subject.right = right }
|
510
533
|
it_behaves_like 'absolute_x_position'
|
511
534
|
end
|
512
535
|
|
513
536
|
shared_examples_for 'absolute_y_position' do
|
514
|
-
its(:absolute_x_position?) {should be_falsey}
|
515
|
-
its(:absolute_y_position?) {should be_truthy}
|
516
|
-
its(:absolutely_positioned?) {should be_truthy}
|
537
|
+
its(:absolute_x_position?) { should be_falsey }
|
538
|
+
its(:absolute_y_position?) { should be_truthy }
|
539
|
+
its(:absolutely_positioned?) { should be_truthy }
|
517
540
|
end
|
518
541
|
|
519
542
|
describe 'changing top' do
|
520
|
-
before
|
543
|
+
before { subject.top = top }
|
521
544
|
it_behaves_like 'absolute_y_position'
|
522
545
|
end
|
523
546
|
|
524
547
|
describe 'changing bottom' do
|
525
|
-
before
|
548
|
+
before { subject.bottom = bottom }
|
526
549
|
it_behaves_like 'absolute_y_position'
|
527
550
|
end
|
528
551
|
end
|
529
552
|
|
530
553
|
describe 'margins' do
|
531
554
|
describe 'creation with single margin value' do
|
532
|
-
let(:margin) {13}
|
533
|
-
subject
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
its(:
|
539
|
-
its(:
|
540
|
-
its(:
|
541
|
-
its(:
|
542
|
-
its(:
|
543
|
-
its(:
|
544
|
-
its(:
|
555
|
+
let(:margin) { 13 }
|
556
|
+
subject do
|
557
|
+
Shoes::Dimensions.new parent, width: width, height: height,
|
558
|
+
margin: margin
|
559
|
+
end
|
560
|
+
|
561
|
+
its(:margin) { should == [margin, margin, margin, margin] }
|
562
|
+
its(:margin_left) { should == margin }
|
563
|
+
its(:margin_top) { should == margin }
|
564
|
+
its(:margin_right) { should == margin }
|
565
|
+
its(:margin_bottom) { should == margin }
|
566
|
+
its(:width) { should == width }
|
567
|
+
its(:height) { should == height }
|
568
|
+
its(:element_width) { should == width - 2 * margin }
|
569
|
+
its(:element_height) { should == height - 2 * margin }
|
545
570
|
|
546
571
|
it 'adapts margin when one of the margins is changed' do
|
547
572
|
subject.margin_right = 7
|
@@ -560,39 +585,46 @@ describe Shoes::Dimensions do
|
|
560
585
|
end
|
561
586
|
|
562
587
|
describe 'creation with all distinct margin values' do
|
563
|
-
let(:margin_left) {3}
|
564
|
-
let(:margin_top) {7}
|
565
|
-
let(:margin_right) {11}
|
566
|
-
let(:margin_bottom) {17}
|
588
|
+
let(:margin_left) { 3 }
|
589
|
+
let(:margin_top) { 7 }
|
590
|
+
let(:margin_right) { 11 }
|
591
|
+
let(:margin_bottom) { 17 }
|
567
592
|
|
568
593
|
shared_examples_for 'all distinct margins' do
|
569
|
-
its(:margin)
|
570
|
-
|
571
|
-
|
572
|
-
its(:
|
573
|
-
its(:
|
574
|
-
its(:
|
575
|
-
its(:
|
576
|
-
its(:
|
577
|
-
its(:
|
594
|
+
its(:margin) do
|
595
|
+
should == [margin_left, margin_top, margin_right, margin_bottom]
|
596
|
+
end
|
597
|
+
its(:margin_left) { should == margin_left }
|
598
|
+
its(:margin_top) { should == margin_top }
|
599
|
+
its(:margin_right) { should == margin_right }
|
600
|
+
its(:margin_bottom) { should == margin_bottom }
|
601
|
+
its(:width) { should == width }
|
602
|
+
its(:height) { should == height }
|
603
|
+
its(:element_width) { should == width - (margin_left + margin_right) }
|
604
|
+
its(:element_height) { should == height - (margin_top + margin_bottom) }
|
578
605
|
end
|
579
606
|
|
580
607
|
describe 'setting margins separetely through hash' do
|
581
|
-
subject
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
608
|
+
subject do
|
609
|
+
Shoes::Dimensions.new parent, width: width,
|
610
|
+
height: height,
|
611
|
+
margin_left: margin_left,
|
612
|
+
margin_top: margin_top,
|
613
|
+
margin_right: margin_right,
|
614
|
+
margin_bottom: margin_bottom
|
615
|
+
end
|
616
|
+
|
587
617
|
it_behaves_like 'all distinct margins'
|
588
618
|
end
|
589
619
|
|
590
620
|
describe 'setting margins through margin array' do
|
591
|
-
subject
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
621
|
+
subject do
|
622
|
+
Shoes::Dimensions.new parent, width: width,
|
623
|
+
height: height,
|
624
|
+
margin: [margin_left, margin_top,
|
625
|
+
margin_right, margin_bottom]
|
626
|
+
end
|
627
|
+
|
596
628
|
it_behaves_like 'all distinct margins'
|
597
629
|
end
|
598
630
|
end
|
@@ -606,21 +638,21 @@ describe Shoes::Dimensions do
|
|
606
638
|
end
|
607
639
|
|
608
640
|
describe 'displace_left' do
|
609
|
-
let(:displace_left) {3}
|
641
|
+
let(:displace_left) { 3 }
|
610
642
|
it 'modifies the value of element_left' do
|
611
643
|
expect do
|
612
644
|
subject.displace_left = displace_left
|
613
|
-
end.to change {subject.element_left}.by(displace_left)
|
645
|
+
end.to change { subject.element_left }.by(displace_left)
|
614
646
|
end
|
615
647
|
|
616
648
|
it 'does not modify the value of absolute_left' do
|
617
649
|
expect do
|
618
650
|
subject.displace_left = displace_left
|
619
|
-
end.not_to change {subject.absolute_left}
|
651
|
+
end.not_to change { subject.absolute_left }
|
620
652
|
end
|
621
653
|
|
622
654
|
context 'via opts' do
|
623
|
-
subject { Shoes::Dimensions.new(nil, 0, 0, 0, 0, displace_left: 10)}
|
655
|
+
subject { Shoes::Dimensions.new(nil, 0, 0, 0, 0, displace_left: 10) }
|
624
656
|
it 'modifies element_left' do
|
625
657
|
expect(subject.element_left).to eql(10)
|
626
658
|
end
|
@@ -628,22 +660,22 @@ describe Shoes::Dimensions do
|
|
628
660
|
end
|
629
661
|
|
630
662
|
describe 'displace_top' do
|
631
|
-
let(:displace_top) {7}
|
663
|
+
let(:displace_top) { 7 }
|
632
664
|
|
633
665
|
it 'modifies the value of element_top' do
|
634
666
|
expect do
|
635
667
|
subject.displace_top = displace_top
|
636
|
-
end.to change {subject.element_top}.by(displace_top)
|
668
|
+
end.to change { subject.element_top }.by(displace_top)
|
637
669
|
end
|
638
670
|
|
639
671
|
it 'does not modify the value of absolute_top' do
|
640
672
|
expect do
|
641
673
|
subject.displace_top = displace_top
|
642
|
-
end.not_to change {subject.absolute_top}
|
674
|
+
end.not_to change { subject.absolute_top }
|
643
675
|
end
|
644
676
|
|
645
677
|
context 'via opts' do
|
646
|
-
subject { Shoes::Dimensions.new(nil, 0, 0, 0, 0, displace_top: 10)}
|
678
|
+
subject { Shoes::Dimensions.new(nil, 0, 0, 0, 0, displace_top: 10) }
|
647
679
|
it 'modifies element_top' do
|
648
680
|
expect(subject.element_top).to eql(10)
|
649
681
|
end
|
@@ -651,23 +683,30 @@ describe Shoes::Dimensions do
|
|
651
683
|
end
|
652
684
|
end
|
653
685
|
|
654
|
-
it {is_expected.to be_takes_up_space}
|
686
|
+
it { is_expected.to be_takes_up_space }
|
655
687
|
|
656
688
|
describe 'left/top/right/bottom not set so get them relative to parent' do
|
657
|
-
let(:parent)
|
658
|
-
|
689
|
+
let(:parent) do
|
690
|
+
double 'parent', x_dimension: x_dimension, y_dimension: y_dimension
|
691
|
+
end
|
692
|
+
|
693
|
+
let(:x_dimension) do
|
694
|
+
double 'parent x dimension', element_start: parent_left,
|
695
|
+
element_end: parent_right
|
696
|
+
end
|
659
697
|
|
660
|
-
let(:
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
let(:
|
698
|
+
let(:y_dimension) do
|
699
|
+
double 'parent y dimension', element_start: parent_top,
|
700
|
+
element_end: parent_bottom
|
701
|
+
end
|
702
|
+
|
703
|
+
let(:parent_right) { parent_left + 20 }
|
704
|
+
let(:parent_bottom) { parent_top + 30 }
|
666
705
|
|
667
|
-
let(:width) {3}
|
668
|
-
let(:height) {5}
|
706
|
+
let(:width) { 3 }
|
707
|
+
let(:height) { 5 }
|
669
708
|
|
670
|
-
subject {Shoes::Dimensions.new parent, width: width, height: height}
|
709
|
+
subject { Shoes::Dimensions.new parent, width: width, height: height }
|
671
710
|
|
672
711
|
describe 'positioned at the start' do
|
673
712
|
before :each do
|
@@ -676,10 +715,10 @@ describe Shoes::Dimensions do
|
|
676
715
|
subject.absolute_top = parent_top
|
677
716
|
end
|
678
717
|
|
679
|
-
its(:left) {should eq 0}
|
680
|
-
its(:top) {should eq 0}
|
681
|
-
its(:right) {should eq parent_right - subject.element_right}
|
682
|
-
its(:bottom) {should eq parent_bottom - subject.element_bottom}
|
718
|
+
its(:left) { should eq 0 }
|
719
|
+
its(:top) { should eq 0 }
|
720
|
+
its(:right) { should eq parent_right - subject.element_right }
|
721
|
+
its(:bottom) { should eq parent_bottom - subject.element_bottom }
|
683
722
|
end
|
684
723
|
|
685
724
|
describe 'positioned with an offset' do
|
@@ -690,17 +729,17 @@ describe Shoes::Dimensions do
|
|
690
729
|
subject.absolute_top = parent_top + TEST_OFFSET
|
691
730
|
end
|
692
731
|
|
693
|
-
its(:left) {should eq TEST_OFFSET}
|
694
|
-
its(:top) {should eq TEST_OFFSET}
|
695
|
-
its(:right) {should eq parent_right - subject.element_right}
|
696
|
-
its(:bottom) {should eq parent_bottom - subject.element_bottom}
|
732
|
+
its(:left) { should eq TEST_OFFSET }
|
733
|
+
its(:top) { should eq TEST_OFFSET }
|
734
|
+
its(:right) { should eq parent_right - subject.element_right }
|
735
|
+
its(:bottom) { should eq parent_bottom - subject.element_bottom }
|
697
736
|
end
|
698
737
|
end
|
699
738
|
|
700
739
|
describe Shoes::AbsoluteDimensions do
|
701
|
-
subject {Shoes::AbsoluteDimensions.new left, top, width, height}
|
740
|
+
subject { Shoes::AbsoluteDimensions.new left, top, width, height }
|
702
741
|
describe 'not adapting floats to parent values' do
|
703
|
-
subject {Shoes::AbsoluteDimensions.new left, top, 1.04, 2.10}
|
742
|
+
subject { Shoes::AbsoluteDimensions.new left, top, 1.04, 2.10 }
|
704
743
|
it 'does not adapt width' do
|
705
744
|
expect(subject.width).to be_within(0.01).of 1.04
|
706
745
|
end
|
@@ -713,20 +752,22 @@ describe Shoes::Dimensions do
|
|
713
752
|
|
714
753
|
describe Shoes::ParentDimensions do
|
715
754
|
describe 'takes some parent values if not specified' do
|
716
|
-
let(:parent)
|
717
|
-
|
718
|
-
|
719
|
-
|
755
|
+
let(:parent) do
|
756
|
+
Shoes::Dimensions.new nil, parent_left, parent_top, parent_width,
|
757
|
+
parent_height, margin: 20
|
758
|
+
end
|
759
|
+
|
760
|
+
subject { Shoes::ParentDimensions.new parent }
|
720
761
|
|
721
|
-
its(:left) {should eq nil}
|
722
|
-
its(:top) {should eq nil}
|
723
|
-
its(:width) {should eq parent.element_width}
|
724
|
-
its(:height) {should eq parent.element_height}
|
762
|
+
its(:left) { should eq nil }
|
763
|
+
its(:top) { should eq nil }
|
764
|
+
its(:width) { should eq parent.element_width }
|
765
|
+
its(:height) { should eq parent.element_height }
|
725
766
|
|
726
|
-
its(:margin_left) {should eq 0}
|
727
|
-
its(:margin_top) {should eq 0}
|
728
|
-
its(:margin_right) {should eq 0}
|
729
|
-
its(:margin_bottom) {should eq 0}
|
767
|
+
its(:margin_left) { should eq 0 }
|
768
|
+
its(:margin_top) { should eq 0 }
|
769
|
+
its(:margin_right) { should eq 0 }
|
770
|
+
its(:margin_bottom) { should eq 0 }
|
730
771
|
|
731
772
|
context 'with parent absolute_left/top set' do
|
732
773
|
before :each do
|
@@ -734,20 +775,20 @@ describe Shoes::Dimensions do
|
|
734
775
|
parent.absolute_top = top
|
735
776
|
end
|
736
777
|
|
737
|
-
its(:absolute_left) {should eq parent.element_left}
|
738
|
-
its(:absolute_top) {should eq parent.element_top}
|
739
|
-
its(:element_left) {should eq parent.element_left}
|
740
|
-
its(:element_top) {should eq parent.element_top}
|
778
|
+
its(:absolute_left) { should eq parent.element_left }
|
779
|
+
its(:absolute_top) { should eq parent.element_top }
|
780
|
+
its(:element_left) { should eq parent.element_left }
|
781
|
+
its(:element_top) { should eq parent.element_top }
|
741
782
|
end
|
742
783
|
end
|
743
784
|
|
744
785
|
describe 'otherwise it takes its own values' do
|
745
|
-
subject {Shoes::ParentDimensions.new parent, left, top, width, height}
|
786
|
+
subject { Shoes::ParentDimensions.new parent, left, top, width, height }
|
746
787
|
|
747
|
-
its(:left) {should eq left}
|
748
|
-
its(:top) {should eq top}
|
749
|
-
its(:width) {should eq width}
|
750
|
-
its(:height) {should eq height}
|
788
|
+
its(:left) { should eq left }
|
789
|
+
its(:top) { should eq top }
|
790
|
+
its(:width) { should eq width }
|
791
|
+
its(:height) { should eq height }
|
751
792
|
|
752
793
|
it 'can also still handle special values like a negative width' do
|
753
794
|
subject.width = -10
|
@@ -764,7 +805,7 @@ end
|
|
764
805
|
|
765
806
|
describe Shoes::DimensionsDelegations do
|
766
807
|
describe 'with a DSL class and a dimensions method' do
|
767
|
-
let(:dimensions) {double('dimensions')}
|
808
|
+
let(:dimensions) { double('dimensions') }
|
768
809
|
|
769
810
|
class DummyClass
|
770
811
|
include Shoes::DimensionsDelegations
|
@@ -800,7 +841,7 @@ describe Shoes::DimensionsDelegations do
|
|
800
841
|
end
|
801
842
|
|
802
843
|
describe 'with any backend class that has a defined dsl method' do
|
803
|
-
let(:dsl) {double 'dsl'}
|
844
|
+
let(:dsl) { double 'dsl' }
|
804
845
|
|
805
846
|
class AnotherDummyClass
|
806
847
|
include Shoes::BackendDimensionsDelegations
|
@@ -821,7 +862,7 @@ describe Shoes::DimensionsDelegations do
|
|
821
862
|
|
822
863
|
it 'does not forward calls to parent' do
|
823
864
|
expect(dsl).not_to receive :parent
|
824
|
-
expect {subject.parent}.to raise_error(NoMethodError)
|
865
|
+
expect { subject.parent }.to raise_error(NoMethodError)
|
825
866
|
end
|
826
867
|
end
|
827
868
|
end
|