vedeu 0.1.10 → 0.1.12
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/lib/vedeu.rb +2 -10
- data/lib/vedeu/api/api.rb +29 -1
- data/lib/vedeu/api/events.rb +1 -26
- data/lib/vedeu/api/{base.rb → helpers.rb} +1 -18
- data/lib/vedeu/api/interface.rb +16 -3
- data/lib/vedeu/api/line.rb +29 -4
- data/lib/vedeu/api/log.rb +13 -1
- data/lib/vedeu/api/store.rb +0 -4
- data/lib/vedeu/api/stream.rb +29 -2
- data/lib/vedeu/api/view.rb +4 -2
- data/lib/vedeu/models/attributes/attributes.rb +25 -0
- data/lib/vedeu/models/attributes/colour_translator.rb +0 -10
- data/lib/vedeu/models/colour.rb +23 -3
- data/lib/vedeu/models/composition.rb +32 -2
- data/lib/vedeu/models/geometry.rb +38 -22
- data/lib/vedeu/models/interface.rb +57 -12
- data/lib/vedeu/models/line.rb +28 -4
- data/lib/vedeu/models/stream.rb +36 -6
- data/lib/vedeu/output/buffers.rb +8 -4
- data/lib/vedeu/output/clear.rb +1 -3
- data/lib/vedeu/output/render.rb +12 -4
- data/lib/vedeu/support/esc.rb +12 -2
- data/lib/vedeu/support/menu.rb +10 -10
- data/test/lib/vedeu/api/events_test.rb +4 -4
- data/test/lib/vedeu/api/interface_test.rb +9 -9
- data/test/lib/vedeu/api/view_test.rb +1 -1
- data/test/lib/vedeu/models/attributes/{collection_test.rb → attributes_test.rb} +7 -7
- data/test/lib/vedeu/models/geometry_test.rb +0 -65
- data/test/lib/vedeu/models/line_test.rb +29 -4
- data/test/lib/vedeu/models/stream_test.rb +56 -11
- data/test/lib/vedeu/output/render_test.rb +1 -0
- data/vedeu.gemspec +1 -3
- metadata +6 -38
- data/lib/vedeu/models/attributes/background.rb +0 -7
- data/lib/vedeu/models/attributes/collection.rb +0 -11
- data/lib/vedeu/models/attributes/foreground.rb +0 -7
- data/lib/vedeu/models/attributes/interface_collection.rb +0 -13
- data/lib/vedeu/models/attributes/line_collection.rb +0 -9
- data/lib/vedeu/models/attributes/stream_collection.rb +0 -9
- data/lib/vedeu/models/style.rb +0 -15
- data/test/lib/vedeu/models/attributes/interface_collection_test.rb +0 -40
- data/test/lib/vedeu/models/attributes/line_collection_test.rb +0 -25
- data/test/lib/vedeu/models/attributes/stream_collection_test.rb +0 -23
- data/test/lib/vedeu/models/style_test.rb +0 -48
- data/test/support/bench.rb +0 -34
- data/test/support/colours.rb +0 -39
@@ -2,36 +2,36 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Vedeu
|
4
4
|
class TestClass
|
5
|
-
include
|
5
|
+
include Attributes
|
6
6
|
|
7
7
|
def initialize(*args); end
|
8
8
|
end
|
9
9
|
|
10
|
-
describe
|
10
|
+
describe Attributes do
|
11
11
|
describe '#coercer' do
|
12
12
|
it 'returns an empty collection when nil or empty' do
|
13
13
|
[nil, '', [], {}].each do |empty_value|
|
14
|
-
|
14
|
+
Attributes.coercer(empty_value, TestClass, :key).must_equal([])
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'returns a single model in a collection when a String' do
|
19
|
-
|
19
|
+
Attributes.coercer('test', TestClass, :key).size.must_equal(1)
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'returns a collection of models when a single hash' do
|
23
|
-
|
23
|
+
Attributes.coercer({ :test1 => 'test1' }, TestClass, :key)
|
24
24
|
.size.must_equal(1)
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'returns a collection of models when multiple hashes' do
|
28
|
-
|
28
|
+
Attributes.coercer([
|
29
29
|
{ :test1 => 'test1' }, { :test2 => 'test2' }
|
30
30
|
], TestClass, :key).size.must_equal(2)
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'returns a collection of models when a single array' do
|
34
|
-
|
34
|
+
Attributes.coercer([{ :test3 => 'test3' }], TestClass, :key)
|
35
35
|
.size.must_equal(1)
|
36
36
|
end
|
37
37
|
end
|
@@ -161,70 +161,5 @@ module Vedeu
|
|
161
161
|
geometry.east.must_equal(26)
|
162
162
|
end
|
163
163
|
end
|
164
|
-
|
165
|
-
describe '#position' do
|
166
|
-
it 'centred is true' do
|
167
|
-
console = IO.console
|
168
|
-
console.stub :winsize, [25, 80] do
|
169
|
-
geometry = Geometry.new({ height: 6, width: 18, centred: true })
|
170
|
-
geometry.position.must_equal({
|
171
|
-
y: 9,
|
172
|
-
x: 31,
|
173
|
-
height: 6,
|
174
|
-
width: 18,
|
175
|
-
centred: true,
|
176
|
-
top: 9,
|
177
|
-
bottom: 15,
|
178
|
-
left: 31,
|
179
|
-
right: 49,
|
180
|
-
})
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
it 'centred is false and x is set' do
|
185
|
-
geometry = Geometry.new({ height: 6, width: 18, x: 7 })
|
186
|
-
geometry.position.must_equal({
|
187
|
-
y: 1,
|
188
|
-
x: 7,
|
189
|
-
height: 6,
|
190
|
-
width: 18,
|
191
|
-
centred: false,
|
192
|
-
top: 1,
|
193
|
-
bottom: 7,
|
194
|
-
left: 7,
|
195
|
-
right: 25,
|
196
|
-
})
|
197
|
-
end
|
198
|
-
|
199
|
-
it 'centred is false and y is set' do
|
200
|
-
geometry = Geometry.new({ height: 6, width: 18, y: 5 })
|
201
|
-
geometry.position.must_equal({
|
202
|
-
y: 5,
|
203
|
-
x: 1,
|
204
|
-
height: 6,
|
205
|
-
width: 18,
|
206
|
-
centred: false,
|
207
|
-
top: 5,
|
208
|
-
bottom: 11,
|
209
|
-
left: 1,
|
210
|
-
right: 19,
|
211
|
-
})
|
212
|
-
end
|
213
|
-
|
214
|
-
it 'centred is false' do
|
215
|
-
geometry = Geometry.new({ height: 6, width: 18 })
|
216
|
-
geometry.position.must_equal({
|
217
|
-
y: 1,
|
218
|
-
x: 1,
|
219
|
-
height: 6,
|
220
|
-
width: 18,
|
221
|
-
centred: false,
|
222
|
-
top: 1,
|
223
|
-
bottom: 7,
|
224
|
-
left: 1,
|
225
|
-
right: 19,
|
226
|
-
})
|
227
|
-
end
|
228
|
-
end
|
229
164
|
end
|
230
165
|
end
|
@@ -13,12 +13,37 @@ module Vedeu
|
|
13
13
|
})
|
14
14
|
}
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
describe '#attributes' do
|
17
|
+
it 'returns the attributes' do
|
18
|
+
line.attributes.must_equal(
|
19
|
+
{
|
20
|
+
colour: {
|
21
|
+
foreground: '#ff0000',
|
22
|
+
background: '#000000'
|
23
|
+
},
|
24
|
+
streams: [],
|
25
|
+
style: 'normal'
|
26
|
+
}
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#colour' do
|
32
|
+
it 'has a colour attribute' do
|
33
|
+
line.colour.must_be_instance_of(Colour)
|
34
|
+
end
|
18
35
|
end
|
19
36
|
|
20
|
-
|
21
|
-
|
37
|
+
describe '#streams' do
|
38
|
+
it 'has a streams attribute' do
|
39
|
+
line.streams.must_equal([])
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '#style' do
|
44
|
+
it 'has a style attribute' do
|
45
|
+
line.style.must_equal("\e[24m\e[21m\e[27m")
|
46
|
+
end
|
22
47
|
end
|
23
48
|
|
24
49
|
describe '#to_s' do
|
@@ -9,32 +9,77 @@ module Vedeu
|
|
9
9
|
background: '#000000'
|
10
10
|
},
|
11
11
|
text: 'Some text',
|
12
|
-
style:
|
12
|
+
style: style,
|
13
13
|
width: width,
|
14
14
|
align: align
|
15
15
|
})
|
16
16
|
}
|
17
|
+
let(:style) { 'normal' }
|
17
18
|
let(:align) { :left }
|
18
19
|
let(:width) { 9 }
|
19
20
|
|
20
|
-
|
21
|
-
|
21
|
+
describe '#colour' do
|
22
|
+
it 'has a colour attribute' do
|
23
|
+
stream.colour.must_be_instance_of(Colour)
|
24
|
+
end
|
22
25
|
end
|
23
26
|
|
24
|
-
|
25
|
-
|
27
|
+
describe '#text' do
|
28
|
+
it 'has a text attribute' do
|
29
|
+
stream.text.must_equal('Some text')
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
|
-
|
29
|
-
|
33
|
+
describe '#style' do
|
34
|
+
it 'has a style attribute' do
|
35
|
+
stream.style.must_equal("\e[24m\e[21m\e[27m")
|
36
|
+
end
|
30
37
|
end
|
31
38
|
|
32
|
-
|
33
|
-
|
39
|
+
describe '#width' do
|
40
|
+
it 'has a width attribute' do
|
41
|
+
stream.width.must_equal(9)
|
42
|
+
end
|
34
43
|
end
|
35
44
|
|
36
|
-
|
37
|
-
|
45
|
+
describe '#align' do
|
46
|
+
it 'has an align attribute' do
|
47
|
+
stream.align.must_equal(:left)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe '#style' do
|
52
|
+
describe 'for a single style' do
|
53
|
+
let(:style) { 'normal' }
|
54
|
+
|
55
|
+
it 'returns an escape sequence' do
|
56
|
+
stream.style.must_equal("\e[24m\e[21m\e[27m")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe 'for multiple styles' do
|
61
|
+
let(:style) { ['normal', 'underline'] }
|
62
|
+
|
63
|
+
it 'returns an escape sequence for multiple styles' do
|
64
|
+
stream.style.must_equal("\e[24m\e[21m\e[27m\e[4m")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe 'for an unknown style' do
|
69
|
+
let(:style) { 'unknown' }
|
70
|
+
|
71
|
+
it 'returns an empty string for an unknown style' do
|
72
|
+
stream.style.must_equal('')
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe 'for an empty or nil' do
|
77
|
+
let(:style) { '' }
|
78
|
+
|
79
|
+
it 'returns an empty string for empty or nil' do
|
80
|
+
stream.style.must_equal('')
|
81
|
+
end
|
82
|
+
end
|
38
83
|
end
|
39
84
|
|
40
85
|
describe '#to_s' do
|
data/vedeu.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'vedeu'
|
7
|
-
spec.version = '0.1.
|
7
|
+
spec.version = '0.1.12'
|
8
8
|
spec.authors = ['Gavin Laking']
|
9
9
|
spec.email = ['gavinlaking@gmail.com']
|
10
10
|
spec.summary = %q{A terminal case of wonderland.}
|
@@ -26,6 +26,4 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency 'pry', '0.10.0'
|
27
27
|
spec.add_development_dependency 'rake', '10.3.2'
|
28
28
|
spec.add_development_dependency 'simplecov', '0.9.0'
|
29
|
-
|
30
|
-
spec.add_dependency 'virtus', '1.0.3'
|
31
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vedeu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Laking
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,20 +150,6 @@ dependencies:
|
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 0.9.0
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: virtus
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - '='
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 1.0.3
|
160
|
-
type: :runtime
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - '='
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 1.0.3
|
167
153
|
description:
|
168
154
|
email:
|
169
155
|
- gavinlaking@gmail.com
|
@@ -185,9 +171,9 @@ files:
|
|
185
171
|
- bin/vedeu
|
186
172
|
- lib/vedeu.rb
|
187
173
|
- lib/vedeu/api/api.rb
|
188
|
-
- lib/vedeu/api/base.rb
|
189
174
|
- lib/vedeu/api/events.rb
|
190
175
|
- lib/vedeu/api/grid.rb
|
176
|
+
- lib/vedeu/api/helpers.rb
|
191
177
|
- lib/vedeu/api/interface.rb
|
192
178
|
- lib/vedeu/api/line.rb
|
193
179
|
- lib/vedeu/api/log.rb
|
@@ -197,20 +183,14 @@ files:
|
|
197
183
|
- lib/vedeu/application.rb
|
198
184
|
- lib/vedeu/configuration.rb
|
199
185
|
- lib/vedeu/launcher.rb
|
200
|
-
- lib/vedeu/models/attributes/
|
201
|
-
- lib/vedeu/models/attributes/collection.rb
|
186
|
+
- lib/vedeu/models/attributes/attributes.rb
|
202
187
|
- lib/vedeu/models/attributes/colour_translator.rb
|
203
|
-
- lib/vedeu/models/attributes/foreground.rb
|
204
|
-
- lib/vedeu/models/attributes/interface_collection.rb
|
205
|
-
- lib/vedeu/models/attributes/line_collection.rb
|
206
|
-
- lib/vedeu/models/attributes/stream_collection.rb
|
207
188
|
- lib/vedeu/models/colour.rb
|
208
189
|
- lib/vedeu/models/composition.rb
|
209
190
|
- lib/vedeu/models/geometry.rb
|
210
191
|
- lib/vedeu/models/interface.rb
|
211
192
|
- lib/vedeu/models/line.rb
|
212
193
|
- lib/vedeu/models/stream.rb
|
213
|
-
- lib/vedeu/models/style.rb
|
214
194
|
- lib/vedeu/output/buffers.rb
|
215
195
|
- lib/vedeu/output/clear.rb
|
216
196
|
- lib/vedeu/output/render.rb
|
@@ -226,18 +206,14 @@ files:
|
|
226
206
|
- test/lib/vedeu/api/store_test.rb
|
227
207
|
- test/lib/vedeu/api/view_test.rb
|
228
208
|
- test/lib/vedeu/configuration_test.rb
|
229
|
-
- test/lib/vedeu/models/attributes/
|
209
|
+
- test/lib/vedeu/models/attributes/attributes_test.rb
|
230
210
|
- test/lib/vedeu/models/attributes/colour_translator_test.rb
|
231
|
-
- test/lib/vedeu/models/attributes/interface_collection_test.rb
|
232
|
-
- test/lib/vedeu/models/attributes/line_collection_test.rb
|
233
|
-
- test/lib/vedeu/models/attributes/stream_collection_test.rb
|
234
211
|
- test/lib/vedeu/models/colour_test.rb
|
235
212
|
- test/lib/vedeu/models/composition_test.rb
|
236
213
|
- test/lib/vedeu/models/geometry_test.rb
|
237
214
|
- test/lib/vedeu/models/interface_test.rb
|
238
215
|
- test/lib/vedeu/models/line_test.rb
|
239
216
|
- test/lib/vedeu/models/stream_test.rb
|
240
|
-
- test/lib/vedeu/models/style_test.rb
|
241
217
|
- test/lib/vedeu/output/buffers_test.rb
|
242
218
|
- test/lib/vedeu/output/clear_test.rb
|
243
219
|
- test/lib/vedeu/output/render_test.rb
|
@@ -246,8 +222,6 @@ files:
|
|
246
222
|
- test/lib/vedeu/support/menu_test.rb
|
247
223
|
- test/lib/vedeu/support/terminal_test.rb
|
248
224
|
- test/stats.sh
|
249
|
-
- test/support/bench.rb
|
250
|
-
- test/support/colours.rb
|
251
225
|
- test/support/model_test_data.json
|
252
226
|
- test/test_helper.rb
|
253
227
|
- vedeu.gemspec
|
@@ -282,18 +256,14 @@ test_files:
|
|
282
256
|
- test/lib/vedeu/api/store_test.rb
|
283
257
|
- test/lib/vedeu/api/view_test.rb
|
284
258
|
- test/lib/vedeu/configuration_test.rb
|
285
|
-
- test/lib/vedeu/models/attributes/
|
259
|
+
- test/lib/vedeu/models/attributes/attributes_test.rb
|
286
260
|
- test/lib/vedeu/models/attributes/colour_translator_test.rb
|
287
|
-
- test/lib/vedeu/models/attributes/interface_collection_test.rb
|
288
|
-
- test/lib/vedeu/models/attributes/line_collection_test.rb
|
289
|
-
- test/lib/vedeu/models/attributes/stream_collection_test.rb
|
290
261
|
- test/lib/vedeu/models/colour_test.rb
|
291
262
|
- test/lib/vedeu/models/composition_test.rb
|
292
263
|
- test/lib/vedeu/models/geometry_test.rb
|
293
264
|
- test/lib/vedeu/models/interface_test.rb
|
294
265
|
- test/lib/vedeu/models/line_test.rb
|
295
266
|
- test/lib/vedeu/models/stream_test.rb
|
296
|
-
- test/lib/vedeu/models/style_test.rb
|
297
267
|
- test/lib/vedeu/output/buffers_test.rb
|
298
268
|
- test/lib/vedeu/output/clear_test.rb
|
299
269
|
- test/lib/vedeu/output/render_test.rb
|
@@ -302,7 +272,5 @@ test_files:
|
|
302
272
|
- test/lib/vedeu/support/menu_test.rb
|
303
273
|
- test/lib/vedeu/support/terminal_test.rb
|
304
274
|
- test/stats.sh
|
305
|
-
- test/support/bench.rb
|
306
|
-
- test/support/colours.rb
|
307
275
|
- test/support/model_test_data.json
|
308
276
|
- test/test_helper.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module Vedeu
|
2
|
-
class InterfaceCollection < Virtus::Attribute
|
3
|
-
def coerce(values)
|
4
|
-
return [] if values.nil? || values.empty?
|
5
|
-
|
6
|
-
[values].flatten.map do |view_attributes|
|
7
|
-
stored_attributes = API::Store.query(view_attributes[:name])
|
8
|
-
|
9
|
-
Interface.new(stored_attributes.merge!(view_attributes))
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|