vedeu 0.6.56 → 0.6.57
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/.rubocop.yml +3 -0
- data/Guardfile +1 -1
- data/Rakefile +3 -3
- data/lib/vedeu/borders/all.rb +1 -0
- data/lib/vedeu/borders/border.rb +14 -80
- data/lib/vedeu/borders/caption.rb +17 -0
- data/lib/vedeu/borders/dsl.rb +2 -2
- data/lib/vedeu/borders/null.rb +14 -34
- data/lib/vedeu/borders/refresh.rb +28 -14
- data/lib/vedeu/borders/title.rb +0 -10
- data/lib/vedeu/buffers/buffer.rb +1 -1
- data/lib/vedeu/buffers/view.rb +7 -6
- data/lib/vedeu/colours/repository.rb +0 -15
- data/lib/vedeu/cursors/cursor.rb +6 -6
- data/lib/vedeu/cursors/refresh.rb +11 -19
- data/lib/vedeu/cursors/reposition.rb +3 -5
- data/lib/vedeu/editor/cropper.rb +9 -9
- data/lib/vedeu/editor/cursor.rb +5 -5
- data/lib/vedeu/editor/editor.rb +1 -1
- data/lib/vedeu/events/event.rb +1 -1
- data/lib/vedeu/events/trigger.rb +1 -1
- data/lib/vedeu/geometry/area.rb +94 -17
- data/lib/vedeu/geometry/coordinate.rb +15 -15
- data/lib/vedeu/geometry/dimension.rb +2 -2
- data/lib/vedeu/geometry/geometry.rb +30 -27
- data/lib/vedeu/geometry/null.rb +17 -11
- data/lib/vedeu/interfaces/clear.rb +5 -12
- data/lib/vedeu/output/viewport.rb +13 -13
- data/lib/vedeu/plugins/plugin.rb +1 -1
- data/lib/vedeu/repositories/repository.rb +1 -3
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/border_test.rb +4 -230
- data/test/lib/vedeu/borders/caption_test.rb +15 -0
- data/test/lib/vedeu/borders/dsl_test.rb +4 -4
- data/test/lib/vedeu/borders/null_test.rb +3 -39
- data/test/lib/vedeu/buffers/view_test.rb +2 -0
- data/test/lib/vedeu/colours/repository_test.rb +0 -19
- data/test/lib/vedeu/cursors/reposition_test.rb +17 -4
- data/test/lib/vedeu/dsl/shared_test.rb +34 -0
- data/test/lib/vedeu/geometry/area_test.rb +196 -3
- data/test/lib/vedeu/geometry/dimension_test.rb +79 -79
- data/test/lib/vedeu/geometry/geometry_test.rb +4 -0
- data/test/lib/vedeu/groups/refresh_test.rb +1 -1
- data/test/lib/vedeu/logging/clock_time_test.rb +14 -0
- data/test/lib/vedeu/logging/ips_test.rb +43 -0
- data/test/lib/vedeu/output/presentation/colour_test.rb +4 -0
- data/test/lib/vedeu/repositories/repositories_test.rb +7 -1
- data/test/lib/vedeu/terminal/buffer_test.rb +10 -0
- data/test/support/examples/material_colours_app.rb +306 -47
- data/test/test_helper.rb +5 -5
- metadata +7 -4
- data/test/support/examples/borders_app.rb +0 -330
|
@@ -173,8 +173,8 @@ module Vedeu
|
|
|
173
173
|
|
|
174
174
|
subject { instance.title(_value) }
|
|
175
175
|
|
|
176
|
-
it { subject.must_be_instance_of(
|
|
177
|
-
it { subject.
|
|
176
|
+
it { subject.must_be_instance_of(String) }
|
|
177
|
+
it { subject.must_equal('Some title') }
|
|
178
178
|
it { instance.must_respond_to(:title=) }
|
|
179
179
|
end
|
|
180
180
|
|
|
@@ -183,8 +183,8 @@ module Vedeu
|
|
|
183
183
|
|
|
184
184
|
subject { instance.caption(_value) }
|
|
185
185
|
|
|
186
|
-
it { subject.must_be_instance_of(
|
|
187
|
-
it { subject.
|
|
186
|
+
it { subject.must_be_instance_of(String) }
|
|
187
|
+
it { subject.must_equal('Some caption') }
|
|
188
188
|
it { instance.must_respond_to(:caption=) }
|
|
189
189
|
end
|
|
190
190
|
|
|
@@ -32,39 +32,10 @@ module Vedeu
|
|
|
32
32
|
it { instance.must_respond_to(:name) }
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
describe '#
|
|
36
|
-
subject { instance.
|
|
35
|
+
describe '#enabled' do
|
|
36
|
+
subject { instance.enabled? }
|
|
37
37
|
|
|
38
|
-
it { subject.
|
|
39
|
-
it { subject.must_equal(4) }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
describe '#by' do
|
|
43
|
-
subject { instance.by }
|
|
44
|
-
|
|
45
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
46
|
-
it { subject.must_equal(6) }
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
describe '#bxn' do
|
|
50
|
-
subject { instance.bxn }
|
|
51
|
-
|
|
52
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
53
|
-
it { subject.must_equal(10) }
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
describe '#byn' do
|
|
57
|
-
subject { instance.byn }
|
|
58
|
-
|
|
59
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
60
|
-
it { subject.must_equal(12) }
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
describe '#height' do
|
|
64
|
-
subject { instance.height }
|
|
65
|
-
|
|
66
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
67
|
-
it { subject.must_equal(7) }
|
|
38
|
+
it { subject.must_equal(false) }
|
|
68
39
|
end
|
|
69
40
|
|
|
70
41
|
describe '#render' do
|
|
@@ -74,13 +45,6 @@ module Vedeu
|
|
|
74
45
|
it { subject.must_equal([]) }
|
|
75
46
|
end
|
|
76
47
|
|
|
77
|
-
describe '#width' do
|
|
78
|
-
subject { instance.width }
|
|
79
|
-
|
|
80
|
-
it { subject.must_be_instance_of(Fixnum) }
|
|
81
|
-
it { subject.must_equal(7) }
|
|
82
|
-
end
|
|
83
|
-
|
|
84
48
|
end # Null
|
|
85
49
|
|
|
86
50
|
end # Borders
|
|
@@ -72,25 +72,6 @@ module Vedeu
|
|
|
72
72
|
end
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
describe '#retrieve_or_register' do
|
|
76
|
-
let(:colour) { '#cc0000' }
|
|
77
|
-
let(:escape_sequence) { 'escape_sequence' }
|
|
78
|
-
|
|
79
|
-
subject { instance.retrieve_or_register(colour, escape_sequence) }
|
|
80
|
-
|
|
81
|
-
context 'when the colour is registered' do
|
|
82
|
-
let(:colour) { '#cc0000' }
|
|
83
|
-
|
|
84
|
-
before { instance.register(colour, 'fake_escape_sequence') }
|
|
85
|
-
|
|
86
|
-
it { subject.must_equal('fake_escape_sequence') }
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
context 'when the colour is not registered' do
|
|
90
|
-
it { subject.must_equal('escape_sequence') }
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
|
|
94
75
|
end # Repository
|
|
95
76
|
|
|
96
77
|
end # Colours
|
|
@@ -43,12 +43,25 @@ module Vedeu
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
describe '#reposition' do
|
|
46
|
+
# let(:new_attributes) {
|
|
47
|
+
# {
|
|
48
|
+
# name: :reposition_test,
|
|
49
|
+
# ox: 0,
|
|
50
|
+
# oy: 0,
|
|
51
|
+
# repository: Vedeu.cursors,
|
|
52
|
+
# visible: false,
|
|
53
|
+
# x: 4,
|
|
54
|
+
# y: 4,
|
|
55
|
+
# }
|
|
56
|
+
# }
|
|
57
|
+
|
|
46
58
|
subject { instance.reposition }
|
|
47
59
|
|
|
48
|
-
it {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
# it {
|
|
61
|
+
# subject
|
|
62
|
+
# Vedeu::Cursors::Cursor.expects(:store).with(new_attributes)
|
|
63
|
+
# Vedeu.expects(:trigger).with(:_refresh_cursor_, _name)
|
|
64
|
+
# }
|
|
52
65
|
|
|
53
66
|
it { subject.must_be_instance_of(Vedeu::Cursors::Cursor) }
|
|
54
67
|
|
|
@@ -15,6 +15,26 @@ module Vedeu
|
|
|
15
15
|
|
|
16
16
|
it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
|
|
17
17
|
end
|
|
18
|
+
|
|
19
|
+
context 'when the block is given' do
|
|
20
|
+
subject { instance.border { } }
|
|
21
|
+
|
|
22
|
+
context 'when the name is not given' do
|
|
23
|
+
it 'uses the name of the model' do
|
|
24
|
+
# @todo Add more tests.
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context 'when the name is given' do
|
|
29
|
+
# @todo Add more tests.
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe '#border!' do
|
|
35
|
+
subject { instance.border! }
|
|
36
|
+
|
|
37
|
+
# @todo Add more tests.
|
|
18
38
|
end
|
|
19
39
|
|
|
20
40
|
describe '#geometry' do
|
|
@@ -23,6 +43,20 @@ module Vedeu
|
|
|
23
43
|
|
|
24
44
|
it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
|
|
25
45
|
end
|
|
46
|
+
|
|
47
|
+
context 'when the block is given' do
|
|
48
|
+
subject { instance.geometry { } }
|
|
49
|
+
|
|
50
|
+
context 'when the name is not given' do
|
|
51
|
+
it 'uses the name of the model' do
|
|
52
|
+
# @todo Add more tests.
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
context 'when the name is given' do
|
|
57
|
+
# @todo Add more tests.
|
|
58
|
+
end
|
|
59
|
+
end
|
|
26
60
|
end
|
|
27
61
|
|
|
28
62
|
end # Shared
|
|
@@ -7,13 +7,46 @@ module Vedeu
|
|
|
7
7
|
describe Area do
|
|
8
8
|
|
|
9
9
|
let(:described) { Vedeu::Geometry::Area }
|
|
10
|
-
let(:instance) { described.new(y: y, yn: yn, x: x, xn: xn) }
|
|
10
|
+
let(:instance) { described.new(name: _name, y: y, yn: yn, x: x, xn: xn) }
|
|
11
|
+
let(:_name) { 'Vedeu::Geometry::Area' }
|
|
11
12
|
let(:y) { 4 }
|
|
12
13
|
let(:yn) { 9 }
|
|
13
14
|
let(:x) { 6 }
|
|
14
15
|
let(:xn) { 21 }
|
|
15
16
|
let(:offset) { 1 }
|
|
16
17
|
|
|
18
|
+
let(:border_attributes) {
|
|
19
|
+
{
|
|
20
|
+
bottom_left: 'C',
|
|
21
|
+
bottom_right: 'D',
|
|
22
|
+
enabled: enabled,
|
|
23
|
+
horizontal: 'H',
|
|
24
|
+
name: _name,
|
|
25
|
+
show_top: top,
|
|
26
|
+
show_bottom: bottom,
|
|
27
|
+
show_left: left,
|
|
28
|
+
show_right: right,
|
|
29
|
+
top_left: 'A',
|
|
30
|
+
top_right: 'B',
|
|
31
|
+
vertical: 'V'
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
let(:enabled) { false }
|
|
35
|
+
let(:top) { false }
|
|
36
|
+
let(:bottom) { false }
|
|
37
|
+
let(:left) { false }
|
|
38
|
+
let(:right) { false }
|
|
39
|
+
let(:border) { Vedeu::Borders::Border.new(border_attributes) }
|
|
40
|
+
let(:border_attributes) {
|
|
41
|
+
{
|
|
42
|
+
enabled: enabled
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
before do
|
|
47
|
+
Vedeu.borders.stubs(:by_name).returns(border)
|
|
48
|
+
end
|
|
49
|
+
|
|
17
50
|
describe 'accessors' do
|
|
18
51
|
it {
|
|
19
52
|
instance.must_respond_to(:y)
|
|
@@ -29,6 +62,7 @@ module Vedeu
|
|
|
29
62
|
|
|
30
63
|
describe '#initialize' do
|
|
31
64
|
it { instance.must_be_instance_of(described) }
|
|
65
|
+
it { instance.instance_variable_get('@name').must_equal(_name) }
|
|
32
66
|
it { instance.instance_variable_get('@y').must_equal(y) }
|
|
33
67
|
it { instance.instance_variable_get('@yn').must_equal(yn) }
|
|
34
68
|
it { instance.instance_variable_get('@x').must_equal(x) }
|
|
@@ -47,6 +81,7 @@ module Vedeu
|
|
|
47
81
|
x_xn: x_xn,
|
|
48
82
|
x_default: x_default,
|
|
49
83
|
maximised: maximised,
|
|
84
|
+
name: _name,
|
|
50
85
|
horizontal_alignment: horizontal_alignment,
|
|
51
86
|
vertical_alignment: vertical_alignment,
|
|
52
87
|
}
|
|
@@ -68,15 +103,173 @@ module Vedeu
|
|
|
68
103
|
it { subject.must_be_instance_of(described) }
|
|
69
104
|
end
|
|
70
105
|
|
|
106
|
+
describe '#bordered_width' do
|
|
107
|
+
subject { instance.bordered_width }
|
|
108
|
+
|
|
109
|
+
context 'when the border is not enabled' do
|
|
110
|
+
let(:enabled) { false }
|
|
111
|
+
|
|
112
|
+
it 'returns the interface width' do
|
|
113
|
+
subject.must_equal(16)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
context 'when the border is enabled' do
|
|
118
|
+
context 'when both left and right borders are shown' do
|
|
119
|
+
let(:border_attributes) {
|
|
120
|
+
{
|
|
121
|
+
enabled: true,
|
|
122
|
+
name: _name,
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
it { subject.must_equal(14) }
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
context 'when either the left or right border is shown' do
|
|
130
|
+
let(:border_attributes) {
|
|
131
|
+
{
|
|
132
|
+
enabled: true,
|
|
133
|
+
name: _name,
|
|
134
|
+
show_left: false
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
it { subject.must_equal(15) }
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
context 'when neither left nor right borders are shown' do
|
|
142
|
+
let(:border_attributes) {
|
|
143
|
+
{
|
|
144
|
+
enabled: true,
|
|
145
|
+
name: _name,
|
|
146
|
+
show_left: false,
|
|
147
|
+
show_right: false
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
it { subject.must_equal(16) }
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
describe '#bordered_height' do
|
|
157
|
+
subject { instance.bordered_height }
|
|
158
|
+
|
|
159
|
+
context 'when the border is not enabled' do
|
|
160
|
+
it 'returns the interface height' do
|
|
161
|
+
subject.must_equal(6)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
context 'when the border is enabled' do
|
|
166
|
+
context 'when both top and bottom borders are shown' do
|
|
167
|
+
let(:border_attributes) {
|
|
168
|
+
{
|
|
169
|
+
enabled: true,
|
|
170
|
+
name: _name,
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
it { subject.must_equal(4) }
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
context 'when either the top or bottom border is shown' do
|
|
178
|
+
let(:border_attributes) {
|
|
179
|
+
{
|
|
180
|
+
enabled: true,
|
|
181
|
+
name: _name,
|
|
182
|
+
show_top: false
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
it { subject.must_equal(5) }
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
context 'when neither top nor bottom borders are shown' do
|
|
190
|
+
let(:border_attributes) {
|
|
191
|
+
{
|
|
192
|
+
enabled: true,
|
|
193
|
+
name: _name,
|
|
194
|
+
show_top: false,
|
|
195
|
+
show_bottom: false
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
it { subject.must_equal(6) }
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
describe '#bx' do
|
|
205
|
+
subject { instance.bx }
|
|
206
|
+
|
|
207
|
+
context 'when enabled' do
|
|
208
|
+
let(:enabled) { true }
|
|
209
|
+
let(:left) { true }
|
|
210
|
+
|
|
211
|
+
it { subject.must_equal(7) }
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
context 'when not enabled or without left' do
|
|
215
|
+
it { subject.must_equal(6) }
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
describe '#bxn' do
|
|
220
|
+
subject { instance.bxn }
|
|
221
|
+
|
|
222
|
+
context 'when enabled' do
|
|
223
|
+
let(:enabled) { true }
|
|
224
|
+
let(:right) { true }
|
|
225
|
+
|
|
226
|
+
it { subject.must_equal(20) }
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
context 'when not enabled or without right' do
|
|
230
|
+
it { subject.must_equal(21) }
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
describe '#by' do
|
|
235
|
+
subject { instance.by }
|
|
236
|
+
|
|
237
|
+
context 'when enabled' do
|
|
238
|
+
let(:enabled) { true }
|
|
239
|
+
let(:top) { true }
|
|
240
|
+
|
|
241
|
+
it { subject.must_equal(5) }
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
context 'when not enabled or without top' do
|
|
245
|
+
it { subject.must_equal(4) }
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
describe '#byn' do
|
|
250
|
+
subject { instance.byn }
|
|
251
|
+
|
|
252
|
+
context 'when enabled' do
|
|
253
|
+
let(:enabled) { true }
|
|
254
|
+
let(:bottom) { true }
|
|
255
|
+
|
|
256
|
+
it { subject.must_equal(8) }
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
context 'when not enabled or without bottom' do
|
|
260
|
+
it { subject.must_equal(9) }
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
|
|
71
264
|
describe '#eql?' do
|
|
72
|
-
let(:other) { described.new(y: 4, yn: 9, x: 6, xn: 21) }
|
|
265
|
+
let(:other) { described.new(name: _name, y: 4, yn: 9, x: 6, xn: 21) }
|
|
73
266
|
|
|
74
267
|
subject { instance.eql?(other) }
|
|
75
268
|
|
|
76
269
|
it { subject.must_equal(true) }
|
|
77
270
|
|
|
78
271
|
context 'when different to other' do
|
|
79
|
-
let(:other) { described.new(y: 1, yn: 25, x: 1, xn: 40) }
|
|
272
|
+
let(:other) { described.new(name: _name, y: 1, yn: 25, x: 1, xn: 40) }
|
|
80
273
|
|
|
81
274
|
it { subject.must_equal(false) }
|
|
82
275
|
end
|