vedeu 0.6.35 → 0.6.36
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/.codeclimate.yml +3 -3
- data/examples/dsl_alignment.rb +162 -0
- data/examples/{demo_groups.rb → dsl_demo_groups.rb} +0 -0
- data/examples/{hello_worlds.rb → dsl_hello_worlds.rb} +0 -0
- data/examples/{alignment.rb → dsl_horizontal_alignment.rb} +13 -25
- data/examples/dsl_vertical_alignment.rb +183 -0
- data/lib/vedeu/geometry/alignment.rb +14 -25
- data/lib/vedeu/geometry/all.rb +4 -0
- data/lib/vedeu/geometry/area.rb +18 -17
- data/lib/vedeu/geometry/dimension.rb +61 -19
- data/lib/vedeu/geometry/dsl.rb +193 -13
- data/lib/vedeu/geometry/geometry.rb +58 -38
- data/lib/vedeu/geometry/horizontal_alignment.rb +25 -0
- data/lib/vedeu/geometry/vertical_alignment.rb +25 -0
- data/lib/vedeu/geometry/x_dimension.rb +33 -0
- data/lib/vedeu/geometry/y_dimension.rb +33 -0
- data/lib/vedeu/output/compressor.rb +9 -6
- data/lib/vedeu/output/renderers/file.rb +35 -11
- data/lib/vedeu/output/renderers/json.rb +2 -2
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/geometry/alignment_test.rb +4 -70
- data/test/lib/vedeu/geometry/area_test.rb +24 -22
- data/test/lib/vedeu/geometry/dimension_test.rb +97 -189
- data/test/lib/vedeu/geometry/dsl_test.rb +191 -24
- data/test/lib/vedeu/geometry/geometry_test.rb +31 -26
- data/test/lib/vedeu/geometry/horizontal_alignment_test.rb +61 -0
- data/test/lib/vedeu/geometry/vertical_alignment_test.rb +55 -0
- data/test/lib/vedeu/geometry/x_dimension_test.rb +74 -0
- data/test/lib/vedeu/geometry/y_dimension_test.rb +74 -0
- data/test/lib/vedeu/output/renderers/file_test.rb +6 -4
- metadata +19 -5
|
@@ -38,30 +38,32 @@ module Vedeu
|
|
|
38
38
|
describe '.from_attributes' do
|
|
39
39
|
let(:attributes) {
|
|
40
40
|
{
|
|
41
|
-
y:
|
|
42
|
-
yn:
|
|
43
|
-
y_yn:
|
|
44
|
-
y_default:
|
|
45
|
-
x:
|
|
46
|
-
xn:
|
|
47
|
-
x_xn:
|
|
48
|
-
x_default:
|
|
49
|
-
maximised:
|
|
50
|
-
centred:
|
|
51
|
-
|
|
41
|
+
y: y,
|
|
42
|
+
yn: yn,
|
|
43
|
+
y_yn: y_yn,
|
|
44
|
+
y_default: y_default,
|
|
45
|
+
x: x,
|
|
46
|
+
xn: xn,
|
|
47
|
+
x_xn: x_xn,
|
|
48
|
+
x_default: x_default,
|
|
49
|
+
maximised: maximised,
|
|
50
|
+
centred: centred,
|
|
51
|
+
horizontal_alignment: horizontal_alignment,
|
|
52
|
+
vertical_alignment: vertical_alignment,
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
let(:y)
|
|
55
|
-
let(:yn)
|
|
56
|
-
let(:y_yn)
|
|
57
|
-
let(:y_default)
|
|
58
|
-
let(:x)
|
|
59
|
-
let(:xn)
|
|
60
|
-
let(:x_xn)
|
|
61
|
-
let(:x_default)
|
|
62
|
-
let(:maximised)
|
|
63
|
-
let(:centred)
|
|
64
|
-
let(:
|
|
55
|
+
let(:y) {}
|
|
56
|
+
let(:yn) {}
|
|
57
|
+
let(:y_yn) {}
|
|
58
|
+
let(:y_default) {}
|
|
59
|
+
let(:x) {}
|
|
60
|
+
let(:xn) {}
|
|
61
|
+
let(:x_xn) {}
|
|
62
|
+
let(:x_default) {}
|
|
63
|
+
let(:maximised) {}
|
|
64
|
+
let(:centred) {}
|
|
65
|
+
let(:horizontal_alignment) {}
|
|
66
|
+
let(:vertical_alignment) {}
|
|
65
67
|
|
|
66
68
|
subject { described.from_attributes(attributes) }
|
|
67
69
|
|
|
@@ -10,22 +10,24 @@ module Vedeu
|
|
|
10
10
|
let(:instance) { described.new(attributes) }
|
|
11
11
|
let(:attributes) {
|
|
12
12
|
{
|
|
13
|
-
d:
|
|
14
|
-
dn:
|
|
15
|
-
d_dn:
|
|
16
|
-
default:
|
|
17
|
-
maximised:
|
|
18
|
-
centred:
|
|
19
|
-
|
|
13
|
+
d: d,
|
|
14
|
+
dn: dn,
|
|
15
|
+
d_dn: d_dn,
|
|
16
|
+
default: default,
|
|
17
|
+
maximised: maximised,
|
|
18
|
+
centred: centred,
|
|
19
|
+
horizontal_alignment: horizontal_alignment,
|
|
20
|
+
vertical_alignment: vertical_alignment,
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
let(:d)
|
|
23
|
-
let(:dn)
|
|
24
|
-
let(:d_dn)
|
|
25
|
-
let(:default)
|
|
26
|
-
let(:maximised)
|
|
27
|
-
let(:centred)
|
|
28
|
-
let(:
|
|
23
|
+
let(:d) {}
|
|
24
|
+
let(:dn) {}
|
|
25
|
+
let(:d_dn) {}
|
|
26
|
+
let(:default) {}
|
|
27
|
+
let(:maximised) {}
|
|
28
|
+
let(:centred) {}
|
|
29
|
+
let(:horizontal_alignment) {}
|
|
30
|
+
let(:vertical_alignment) {}
|
|
29
31
|
|
|
30
32
|
describe '#initialize' do
|
|
31
33
|
it { instance.must_be_instance_of(described) }
|
|
@@ -35,216 +37,122 @@ module Vedeu
|
|
|
35
37
|
it { instance.instance_variable_get('@default').must_equal(default) }
|
|
36
38
|
it { instance.instance_variable_get('@maximised').must_equal(maximised) }
|
|
37
39
|
it { instance.instance_variable_get('@centred').must_equal(centred) }
|
|
38
|
-
it { instance.instance_variable_get('@
|
|
40
|
+
it { instance.instance_variable_get('@horizontal_alignment').must_equal(horizontal_alignment) }
|
|
41
|
+
it { instance.instance_variable_get('@vertical_alignment').must_equal(vertical_alignment) }
|
|
39
42
|
end
|
|
40
43
|
|
|
41
|
-
describe '.pair' do
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
# describe '.pair' do
|
|
45
|
+
# let(:d) { 15 }
|
|
46
|
+
# let(:dn) { 38 }
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
# subject { described.pair(attributes) }
|
|
46
49
|
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
# it { subject.must_be_instance_of(Array) }
|
|
51
|
+
# it { subject.must_equal([15, 38]) }
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
# context 'when maximised' do
|
|
54
|
+
# let(:maximised) { true }
|
|
55
|
+
# let(:default) { 80 }
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
# it { subject.must_equal([1, 80]) }
|
|
58
|
+
# end
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
let(:default) { 80 }
|
|
60
|
+
# context 'when bottom aligned' do
|
|
61
|
+
# let(:alignment) { :bottom }
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
# it { proc { subject }.must_raise(Vedeu::Error::NotImplemented) }
|
|
64
|
+
# end
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
# context 'when left aligned' do
|
|
67
|
+
# let(:alignment) { :left }
|
|
68
|
+
# let(:default) { 80 }
|
|
65
69
|
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
# context 'when a width (d_dn) is set' do
|
|
71
|
+
# let(:d_dn) { 20 }
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
end
|
|
73
|
+
# it { subject.must_equal([1, 20]) }
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
end
|
|
75
|
+
# context 'when the width is greater than the terminal width' do
|
|
76
|
+
# let(:d_dn) { 100 }
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
# it { subject.must_equal([1, 80]) }
|
|
79
|
+
# end
|
|
80
|
+
# end
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
# context 'when a dn is set' do
|
|
83
|
+
# it { subject.must_equal([1, 38]) }
|
|
84
|
+
# end
|
|
83
85
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
let(:default) { 80 }
|
|
86
|
+
# context 'when neither width nor dn is set' do
|
|
87
|
+
# let(:dn) {}
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
# it { subject.must_equal([1, 80]) }
|
|
90
|
+
# end
|
|
91
|
+
# end
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
# context 'when middle aligned' do
|
|
94
|
+
# let(:alignment) { :middle }
|
|
92
95
|
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
# it { proc { subject }.must_raise(Vedeu::Error::NotImplemented) }
|
|
97
|
+
# end
|
|
95
98
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
# context 'when right aligned' do
|
|
100
|
+
# let(:alignment) { :right }
|
|
101
|
+
# let(:default) { 80 }
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
# context 'when a width (d_dn) is set' do
|
|
104
|
+
# let(:d_dn) { 20 }
|
|
102
105
|
|
|
103
|
-
|
|
104
|
-
end
|
|
106
|
+
# it { subject.must_equal([60, 80]) }
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
+
# context 'when the width is greater than the terminal width' do
|
|
109
|
+
# let(:d_dn) { 100 }
|
|
108
110
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
# it { subject.must_equal([1, 80]) }
|
|
112
|
+
# end
|
|
113
|
+
# end
|
|
112
114
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
let(:default) { 80 }
|
|
115
|
+
# context 'when a d is set' do
|
|
116
|
+
# let(:d) { 58 }
|
|
116
117
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
let(:dn) { 47 }
|
|
118
|
+
# it { subject.must_equal([58, 80]) }
|
|
119
|
+
# end
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
# context 'when neither width nor d is set' do
|
|
122
|
+
# let(:d) {}
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
# it { subject.must_equal([1, 80]) }
|
|
125
|
+
# end
|
|
126
|
+
# end
|
|
126
127
|
|
|
127
|
-
|
|
128
|
-
|
|
128
|
+
# context 'when top aligned' do
|
|
129
|
+
# let(:alignment) { :top }
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
describe '#d1' do
|
|
137
|
-
subject { instance.d1 }
|
|
138
|
-
|
|
139
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
140
|
-
|
|
141
|
-
# context 'when not centred and/or a length cannot be determined' do
|
|
142
|
-
# context 'when d is given' do
|
|
143
|
-
# let(:d) { 5 }
|
|
144
|
-
|
|
145
|
-
# it { subject.must_equal(5) }
|
|
146
|
-
# end
|
|
147
|
-
|
|
148
|
-
# context 'when d is not given' do
|
|
149
|
-
# it { subject.must_equal(1) }
|
|
150
|
-
# end
|
|
151
|
-
# end
|
|
152
|
-
|
|
153
|
-
# context 'when centred and a length can be determined' do
|
|
154
|
-
# let(:centred) { true }
|
|
155
|
-
# let(:default) { 80 }
|
|
156
|
-
|
|
157
|
-
# context 'when d and dn are given' do
|
|
158
|
-
# let(:d) { 7 }
|
|
159
|
-
# let(:dn) { 47 }
|
|
160
|
-
|
|
161
|
-
# it { subject.must_equal(20) }
|
|
162
|
-
# end
|
|
163
|
-
|
|
164
|
-
# context 'when only a d_dn is given' do
|
|
165
|
-
# let(:d_dn) { 30 }
|
|
166
|
-
|
|
167
|
-
# it { subject.must_equal(25) }
|
|
168
|
-
# end
|
|
169
|
-
|
|
170
|
-
# context 'when only a default is given' do
|
|
171
|
-
# it { subject.must_equal(1) }
|
|
172
|
-
# end
|
|
173
|
-
# end
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
describe '#d2' do
|
|
177
|
-
subject { instance.d2 }
|
|
178
|
-
|
|
179
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
131
|
+
# it { proc { subject }.must_raise(Vedeu::Error::NotImplemented) }
|
|
132
|
+
# end
|
|
180
133
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
# let(:dn) { 8 }
|
|
134
|
+
# context 'when centre aligned' do
|
|
135
|
+
# let(:alignment) { :centre }
|
|
136
|
+
# let(:default) { 80 }
|
|
185
137
|
|
|
186
|
-
|
|
187
|
-
|
|
138
|
+
# context 'when d and dn are given' do
|
|
139
|
+
# let(:d) { 7 }
|
|
140
|
+
# let(:dn) { 47 }
|
|
188
141
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
# let(:d_dn) { 2 }
|
|
142
|
+
# it { subject.must_equal([20, 60]) }
|
|
143
|
+
# end
|
|
192
144
|
|
|
193
|
-
|
|
194
|
-
|
|
145
|
+
# context 'when only a d_dn is given' do
|
|
146
|
+
# let(:d_dn) { 30 }
|
|
195
147
|
|
|
196
|
-
|
|
197
|
-
|
|
148
|
+
# it { subject.must_equal([28, 52]) }
|
|
149
|
+
# end
|
|
198
150
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
# it { subject.must_equal(8) }
|
|
206
|
-
# end
|
|
207
|
-
|
|
208
|
-
# context 'when d and a default is given' do
|
|
209
|
-
# let(:d) { 1 }
|
|
210
|
-
# let(:default) { 40 }
|
|
211
|
-
|
|
212
|
-
# it { subject.must_equal(40) }
|
|
213
|
-
# end
|
|
214
|
-
|
|
215
|
-
# context 'when only a default is given' do
|
|
216
|
-
# let(:default) { 25 }
|
|
217
|
-
|
|
218
|
-
# it { subject.must_equal(25) }
|
|
219
|
-
# end
|
|
220
|
-
|
|
221
|
-
# context 'when no default is given' do
|
|
222
|
-
# it { subject.must_equal(nil) }
|
|
223
|
-
# end
|
|
224
|
-
# end
|
|
225
|
-
|
|
226
|
-
# context 'when centred and a length can be determined' do
|
|
227
|
-
# let(:centred) { true }
|
|
228
|
-
# let(:default) { 80 }
|
|
229
|
-
|
|
230
|
-
# context 'when d and dn are given' do
|
|
231
|
-
# let(:d) { 7 }
|
|
232
|
-
# let(:dn) { 47 }
|
|
233
|
-
|
|
234
|
-
# it { subject.must_equal(60) }
|
|
235
|
-
# end
|
|
236
|
-
|
|
237
|
-
# context 'when only a d_dn is given' do
|
|
238
|
-
# let(:d_dn) { 30 }
|
|
239
|
-
|
|
240
|
-
# it { subject.must_equal(55) }
|
|
241
|
-
# end
|
|
242
|
-
|
|
243
|
-
# context 'when only a default is given' do
|
|
244
|
-
# it { subject.must_equal(80) }
|
|
245
|
-
# end
|
|
246
|
-
# end
|
|
247
|
-
end
|
|
151
|
+
# context 'when only a default is given' do
|
|
152
|
+
# it { subject.must_equal([28, 52]) }
|
|
153
|
+
# end
|
|
154
|
+
# end
|
|
155
|
+
# end
|
|
248
156
|
|
|
249
157
|
end # Dimension
|
|
250
158
|
|
|
@@ -14,49 +14,184 @@ module Vedeu
|
|
|
14
14
|
it { described.must_respond_to(:geometry) }
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
describe '#alignment' do
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
# describe '#alignment' do
|
|
18
|
+
# let(:_value) { :none }
|
|
19
|
+
# let(:width) { 20 }
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
# subject { instance.alignment(_value, width) }
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
# context 'when a value and width is given' do
|
|
24
|
+
# it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
25
|
+
|
|
26
|
+
# context 'when the value is :center' do
|
|
27
|
+
# let(:_value) { :center }
|
|
28
|
+
|
|
29
|
+
# it { subject.alignment.must_equal(:centre) }
|
|
30
|
+
# end
|
|
31
|
+
|
|
32
|
+
# context 'when the value is :centre' do
|
|
33
|
+
# let(:_value) { :centre }
|
|
34
|
+
|
|
35
|
+
# it { subject.alignment.must_equal(:centre) }
|
|
36
|
+
# end
|
|
37
|
+
|
|
38
|
+
# context 'when the value is :left' do
|
|
39
|
+
# let(:_value) { :left }
|
|
40
|
+
|
|
41
|
+
# it { subject.alignment.must_equal(:left) }
|
|
42
|
+
# end
|
|
43
|
+
|
|
44
|
+
# context 'when the value is :right' do
|
|
45
|
+
# let(:_value) { :right }
|
|
46
|
+
|
|
47
|
+
# it { subject.alignment.must_equal(:right) }
|
|
48
|
+
# end
|
|
49
|
+
# end
|
|
50
|
+
|
|
51
|
+
# context 'when a value is not given' do
|
|
52
|
+
# let(:_value) {}
|
|
25
53
|
|
|
26
|
-
|
|
27
|
-
|
|
54
|
+
# it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
|
|
55
|
+
# end
|
|
28
56
|
|
|
29
|
-
|
|
57
|
+
# context 'when a width is not given' do
|
|
58
|
+
# let(:_value) { :none }
|
|
59
|
+
# let(:width) {}
|
|
60
|
+
|
|
61
|
+
# it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
|
|
62
|
+
# end
|
|
63
|
+
# end
|
|
64
|
+
|
|
65
|
+
describe '#align' do
|
|
66
|
+
let(:vertical) { :top }
|
|
67
|
+
let(:horizontal) { :left }
|
|
68
|
+
let(:width) { 20 }
|
|
69
|
+
let(:height) { 20 }
|
|
70
|
+
|
|
71
|
+
subject { instance.align(vertical, horizontal, width, height) }
|
|
72
|
+
|
|
73
|
+
context 'when the vertical argument is not given' do
|
|
74
|
+
let(:vertical) {}
|
|
75
|
+
|
|
76
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
77
|
+
message.must_match(/No vertical alignment/)
|
|
78
|
+
}
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
context 'when the vertical argument is given' do
|
|
82
|
+
context 'when the height is not given' do
|
|
83
|
+
let(:height) {}
|
|
84
|
+
|
|
85
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
86
|
+
message.must_equal('No height given.')
|
|
87
|
+
}
|
|
30
88
|
end
|
|
31
89
|
|
|
32
|
-
context 'when the
|
|
33
|
-
|
|
90
|
+
context 'when the height is given' do
|
|
91
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
92
|
+
it { subject.vertical_alignment.must_equal(:top) }
|
|
93
|
+
it { subject.horizontal_alignment.must_equal(:left) }
|
|
94
|
+
it { subject.height.must_equal(20) }
|
|
95
|
+
it { subject.width.must_equal(20) }
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
context 'when the horizontal argument is not given' do
|
|
100
|
+
let(:horizontal) {}
|
|
101
|
+
|
|
102
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
103
|
+
message.must_match(/No horizontal alignment/)
|
|
104
|
+
}
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
context 'when the horizontal argument is given' do
|
|
108
|
+
context 'when the width is not given' do
|
|
109
|
+
let(:width) {}
|
|
34
110
|
|
|
35
|
-
it { subject.
|
|
111
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
112
|
+
message.must_equal('No width given.')
|
|
113
|
+
}
|
|
36
114
|
end
|
|
37
115
|
|
|
38
|
-
context 'when the
|
|
39
|
-
|
|
116
|
+
context 'when the width is given' do
|
|
117
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
118
|
+
it { subject.vertical_alignment.must_equal(:top) }
|
|
119
|
+
it { subject.horizontal_alignment.must_equal(:left) }
|
|
120
|
+
it { subject.height.must_equal(20) }
|
|
121
|
+
it { subject.width.must_equal(20) }
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe '#horizontal_alignment' do
|
|
127
|
+
let(:_value) {}
|
|
128
|
+
let(:width) {}
|
|
129
|
+
|
|
130
|
+
subject { instance.horizontal_alignment(_value, width) }
|
|
40
131
|
|
|
41
|
-
|
|
132
|
+
context 'when the value is not given' do
|
|
133
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
134
|
+
message.must_match(/No horizontal alignment/)
|
|
135
|
+
}
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
context 'when the value is given' do
|
|
139
|
+
let(:_value) { :right }
|
|
140
|
+
|
|
141
|
+
context 'when a width is not given' do
|
|
142
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
143
|
+
message.must_equal('No width given.')
|
|
144
|
+
}
|
|
42
145
|
end
|
|
43
146
|
|
|
44
|
-
context 'when
|
|
45
|
-
let(:
|
|
147
|
+
context 'when a width is given' do
|
|
148
|
+
let(:width) { 20 }
|
|
46
149
|
|
|
47
|
-
it { subject.
|
|
150
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
48
151
|
end
|
|
49
152
|
end
|
|
153
|
+
end
|
|
50
154
|
|
|
51
|
-
|
|
52
|
-
|
|
155
|
+
describe '#vertical_alignment' do
|
|
156
|
+
let(:_value) {}
|
|
157
|
+
let(:height) {}
|
|
53
158
|
|
|
54
|
-
|
|
159
|
+
subject { instance.vertical_alignment(_value, height) }
|
|
160
|
+
|
|
161
|
+
context 'when the value is not given' do
|
|
162
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
163
|
+
message.must_match(/No vertical alignment/)
|
|
164
|
+
}
|
|
55
165
|
end
|
|
56
166
|
|
|
57
|
-
context 'when
|
|
58
|
-
let(:_value) { :
|
|
59
|
-
|
|
167
|
+
context 'when the value is given' do
|
|
168
|
+
let(:_value) { :bottom }
|
|
169
|
+
|
|
170
|
+
context 'when a height is not given' do
|
|
171
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax).
|
|
172
|
+
message.must_equal('No height given.')
|
|
173
|
+
}
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
context 'when a height is given' do
|
|
177
|
+
let(:height) { 20 }
|
|
178
|
+
|
|
179
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
describe '#align_bottom' do
|
|
185
|
+
let(:height) { 20 }
|
|
186
|
+
|
|
187
|
+
subject { instance.align_bottom(height) }
|
|
188
|
+
|
|
189
|
+
context 'when a height is given' do
|
|
190
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
context 'when a height is not given' do
|
|
194
|
+
let(:height) {}
|
|
60
195
|
|
|
61
196
|
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
|
|
62
197
|
end
|
|
@@ -95,6 +230,22 @@ module Vedeu
|
|
|
95
230
|
end
|
|
96
231
|
end
|
|
97
232
|
|
|
233
|
+
describe '#align_middle' do
|
|
234
|
+
let(:height) { 20 }
|
|
235
|
+
|
|
236
|
+
subject { instance.align_middle(height) }
|
|
237
|
+
|
|
238
|
+
context 'when a height is given' do
|
|
239
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
context 'when a height is not given' do
|
|
243
|
+
let(:height) {}
|
|
244
|
+
|
|
245
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
|
|
98
249
|
describe '#align_right' do
|
|
99
250
|
let(:width) { 20 }
|
|
100
251
|
|
|
@@ -110,6 +261,22 @@ module Vedeu
|
|
|
110
261
|
end
|
|
111
262
|
end
|
|
112
263
|
|
|
264
|
+
describe '#align_top' do
|
|
265
|
+
let(:height) { 20 }
|
|
266
|
+
|
|
267
|
+
subject { instance.align_top(height) }
|
|
268
|
+
|
|
269
|
+
context 'when a height is given' do
|
|
270
|
+
it { subject.must_be_instance_of(Vedeu::Geometry::Geometry) }
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
context 'when a height is not given' do
|
|
274
|
+
let(:height) {}
|
|
275
|
+
|
|
276
|
+
it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
|
|
113
280
|
describe '#centred' do
|
|
114
281
|
subject { instance.centred(true) }
|
|
115
282
|
|