vedeu 0.0.32 → 0.0.33
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/application.rb +2 -0
- data/lib/vedeu/launcher.rb +1 -1
- data/lib/vedeu/models/colour.rb +7 -7
- data/lib/vedeu/models/command.rb +2 -0
- data/lib/vedeu/models/composition.rb +2 -2
- data/lib/vedeu/models/interface.rb +15 -6
- data/lib/vedeu/models/line.rb +5 -3
- data/lib/vedeu/models/presentation.rb +3 -3
- data/lib/vedeu/models/stream.rb +6 -3
- data/lib/vedeu/models/style.rb +31 -0
- data/lib/vedeu/output/interface_renderer.rb +1 -3
- data/lib/vedeu/support/coordinate.rb +21 -7
- data/lib/vedeu/support/parsing/json_parser.rb +3 -3
- data/test/lib/vedeu/application_test.rb +0 -11
- data/test/lib/vedeu/launcher_test.rb +0 -8
- data/test/lib/vedeu/models/collection_test.rb +3 -3
- data/test/lib/vedeu/models/colour_test.rb +7 -2
- data/test/lib/vedeu/models/command_test.rb +0 -6
- data/test/lib/vedeu/models/composition_test.rb +127 -37
- data/test/lib/vedeu/models/interface_collection_test.rb +8 -9
- data/test/lib/vedeu/models/interface_test.rb +64 -18
- data/test/lib/vedeu/models/line_test.rb +3 -7
- data/test/lib/vedeu/models/presentation_test.rb +7 -5
- data/test/lib/vedeu/models/stream_test.rb +21 -11
- data/test/lib/vedeu/models/style_test.rb +86 -0
- data/test/lib/vedeu/output/interface_renderer_test.rb +32 -5
- data/test/lib/vedeu/output/output_test.rb +8 -1
- data/test/lib/vedeu/repository/command_repository_test.rb +14 -10
- data/test/lib/vedeu/repository/interface_repository_test.rb +9 -9
- data/test/lib/vedeu/support/coordinate_test.rb +72 -19
- data/test/lib/vedeu/support/menu_test.rb +16 -16
- data/test/lib/vedeu/support/parsing/hash_parser_test.rb +7 -7
- data/test/lib/vedeu/support/parsing/json_parser_test.rb +1 -1
- data/test/lib/vedeu/support/terminal_test.rb +0 -7
- data/test/lib/vedeu_test.rb +0 -5
- data/test/test_helper.rb +1 -0
- data/vedeu.gemspec +2 -3
- metadata +7 -25
- data/lib/vedeu/models/style_collection.rb +0 -19
- data/lib/vedeu/support/geometry.rb +0 -62
- data/test/lib/vedeu/models/style_collection_test.rb +0 -13
- data/test/lib/vedeu/support/geometry_test.rb +0 -107
@@ -60,10 +60,10 @@ module Vedeu
|
|
60
60
|
it 'returns a tuple when the current has changed' do
|
61
61
|
menu.next.items.must_equal(
|
62
62
|
[
|
63
|
-
[false, false,
|
64
|
-
[false, true,
|
65
|
-
[false, false,
|
66
|
-
[false, false,
|
63
|
+
[false, false, 'hydrogen'],
|
64
|
+
[false, true, 'carbon'],
|
65
|
+
[false, false, 'nitrogen'],
|
66
|
+
[false, false, 'oxygen']
|
67
67
|
]
|
68
68
|
)
|
69
69
|
end
|
@@ -72,10 +72,10 @@ module Vedeu
|
|
72
72
|
menu.next.select
|
73
73
|
menu.items.must_equal(
|
74
74
|
[
|
75
|
-
[false, false,
|
76
|
-
[true, true,
|
77
|
-
[false, false,
|
78
|
-
[false, false,
|
75
|
+
[false, false, 'hydrogen'],
|
76
|
+
[true, true, 'carbon'],
|
77
|
+
[false, false, 'nitrogen'],
|
78
|
+
[false, false, 'oxygen']
|
79
79
|
]
|
80
80
|
)
|
81
81
|
end
|
@@ -86,10 +86,10 @@ module Vedeu
|
|
86
86
|
menu.next.next
|
87
87
|
menu.items.must_equal(
|
88
88
|
[
|
89
|
-
[false, false,
|
90
|
-
[true, false,
|
91
|
-
[false, false,
|
92
|
-
[false, true,
|
89
|
+
[false, false, 'hydrogen'],
|
90
|
+
[true, false, 'carbon'],
|
91
|
+
[false, false, 'nitrogen'],
|
92
|
+
[false, true, 'oxygen']
|
93
93
|
]
|
94
94
|
)
|
95
95
|
end
|
@@ -98,20 +98,20 @@ module Vedeu
|
|
98
98
|
describe '#render' do
|
99
99
|
it 'returns a tuple' do
|
100
100
|
menu.render.must_equal(
|
101
|
-
[
|
101
|
+
[' > hydrogen', ' carbon', ' nitrogen', ' oxygen']
|
102
102
|
)
|
103
103
|
end
|
104
104
|
|
105
105
|
it 'returns a tuple when the current has changed' do
|
106
106
|
menu.next.render.must_equal(
|
107
|
-
[
|
107
|
+
[' hydrogen', ' > carbon', ' nitrogen', ' oxygen']
|
108
108
|
)
|
109
109
|
end
|
110
110
|
|
111
111
|
it 'returns a tuple when an item is selected' do
|
112
112
|
menu.next.select
|
113
113
|
menu.render.must_equal(
|
114
|
-
[
|
114
|
+
[' hydrogen', '*> carbon', ' nitrogen', ' oxygen']
|
115
115
|
)
|
116
116
|
end
|
117
117
|
|
@@ -120,7 +120,7 @@ module Vedeu
|
|
120
120
|
menu.next.select
|
121
121
|
menu.next.next
|
122
122
|
menu.render.must_equal(
|
123
|
-
[
|
123
|
+
[' hydrogen', '* carbon', ' nitrogen', ' > oxygen']
|
124
124
|
)
|
125
125
|
end
|
126
126
|
end
|
@@ -6,14 +6,14 @@ module Vedeu
|
|
6
6
|
describe '.parse' do
|
7
7
|
it 'returns a Hash when the output is content for multiple interfaces' do
|
8
8
|
HashParser.parse({
|
9
|
-
test:
|
9
|
+
test: 'Some content...',
|
10
10
|
dummy: 'More content...'
|
11
11
|
}).must_equal({
|
12
12
|
interfaces: [
|
13
|
-
{ name:
|
14
|
-
{ streams: { text:
|
15
|
-
{ name:
|
16
|
-
{ streams: { text:
|
13
|
+
{ name: 'test', lines: [
|
14
|
+
{ streams: { text: 'Some content...' } }] },
|
15
|
+
{ name: 'dummy', lines: [
|
16
|
+
{ streams: { text: 'More content...' } }] }
|
17
17
|
]
|
18
18
|
})
|
19
19
|
end
|
@@ -23,8 +23,8 @@ module Vedeu
|
|
23
23
|
dummy: 'Some content...'
|
24
24
|
}).must_equal({
|
25
25
|
interfaces: [
|
26
|
-
{ name:
|
27
|
-
{ streams: { text:
|
26
|
+
{ name: 'dummy', lines: [
|
27
|
+
{ streams: { text: 'Some content...' } }] }
|
28
28
|
]
|
29
29
|
})
|
30
30
|
end
|
data/test/lib/vedeu_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
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.0.
|
7
|
+
spec.version = '0.0.33'
|
8
8
|
spec.authors = ['Gavin Laking']
|
9
9
|
spec.email = ['gavinlaking@gmail.com']
|
10
10
|
spec.summary = %q{A terminal case of wonderland.}
|
@@ -24,8 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'pry', '0.10.0'
|
25
25
|
spec.add_development_dependency 'rake', '10.3.2'
|
26
26
|
spec.add_development_dependency 'ruby-prof', '0.15.1'
|
27
|
-
spec.add_development_dependency 'simplecov', '0.
|
27
|
+
spec.add_development_dependency 'simplecov', '0.9.0'
|
28
28
|
|
29
|
-
spec.add_dependency 'oj', '2.9.9'
|
30
29
|
spec.add_dependency 'virtus', '1.0.2'
|
31
30
|
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.0.
|
4
|
+
version: 0.0.33
|
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-07-
|
11
|
+
date: 2014-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -128,28 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - '='
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
131
|
+
version: 0.9.0
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - '='
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: oj
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - '='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 2.9.9
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - '='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: 2.9.9
|
138
|
+
version: 0.9.0
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: virtus
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -197,7 +183,7 @@ files:
|
|
197
183
|
- lib/vedeu/models/presentation.rb
|
198
184
|
- lib/vedeu/models/stream.rb
|
199
185
|
- lib/vedeu/models/stream_collection.rb
|
200
|
-
- lib/vedeu/models/
|
186
|
+
- lib/vedeu/models/style.rb
|
201
187
|
- lib/vedeu/output/interface_renderer.rb
|
202
188
|
- lib/vedeu/output/output.rb
|
203
189
|
- lib/vedeu/output/template.rb
|
@@ -211,7 +197,6 @@ files:
|
|
211
197
|
- lib/vedeu/support/coordinate.rb
|
212
198
|
- lib/vedeu/support/esc.rb
|
213
199
|
- lib/vedeu/support/exit.rb
|
214
|
-
- lib/vedeu/support/geometry.rb
|
215
200
|
- lib/vedeu/support/menu.rb
|
216
201
|
- lib/vedeu/support/parser.rb
|
217
202
|
- lib/vedeu/support/parsing/hash_parser.rb
|
@@ -238,7 +223,7 @@ files:
|
|
238
223
|
- test/lib/vedeu/models/presentation_test.rb
|
239
224
|
- test/lib/vedeu/models/stream_collection_test.rb
|
240
225
|
- test/lib/vedeu/models/stream_test.rb
|
241
|
-
- test/lib/vedeu/models/
|
226
|
+
- test/lib/vedeu/models/style_test.rb
|
242
227
|
- test/lib/vedeu/output/interface_renderer_test.rb
|
243
228
|
- test/lib/vedeu/output/output_test.rb
|
244
229
|
- test/lib/vedeu/output/template.rb
|
@@ -252,7 +237,6 @@ files:
|
|
252
237
|
- test/lib/vedeu/support/esc_test.rb
|
253
238
|
- test/lib/vedeu/support/event_repository_test.rb
|
254
239
|
- test/lib/vedeu/support/exit_test.rb
|
255
|
-
- test/lib/vedeu/support/geometry_test.rb
|
256
240
|
- test/lib/vedeu/support/menu_test.rb
|
257
241
|
- test/lib/vedeu/support/parser_test.rb
|
258
242
|
- test/lib/vedeu/support/parsing/hash_parser_test.rb
|
@@ -320,7 +304,7 @@ test_files:
|
|
320
304
|
- test/lib/vedeu/models/presentation_test.rb
|
321
305
|
- test/lib/vedeu/models/stream_collection_test.rb
|
322
306
|
- test/lib/vedeu/models/stream_test.rb
|
323
|
-
- test/lib/vedeu/models/
|
307
|
+
- test/lib/vedeu/models/style_test.rb
|
324
308
|
- test/lib/vedeu/output/interface_renderer_test.rb
|
325
309
|
- test/lib/vedeu/output/output_test.rb
|
326
310
|
- test/lib/vedeu/output/template.rb
|
@@ -334,7 +318,6 @@ test_files:
|
|
334
318
|
- test/lib/vedeu/support/esc_test.rb
|
335
319
|
- test/lib/vedeu/support/event_repository_test.rb
|
336
320
|
- test/lib/vedeu/support/exit_test.rb
|
337
|
-
- test/lib/vedeu/support/geometry_test.rb
|
338
321
|
- test/lib/vedeu/support/menu_test.rb
|
339
322
|
- test/lib/vedeu/support/parser_test.rb
|
340
323
|
- test/lib/vedeu/support/parsing/hash_parser_test.rb
|
@@ -359,4 +342,3 @@ test_files:
|
|
359
342
|
- test/support/json/int2_lin2_str3_styles.json
|
360
343
|
- test/support/template.erb
|
361
344
|
- test/test_helper.rb
|
362
|
-
has_rdoc:
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'virtus'
|
2
|
-
|
3
|
-
require_relative '../support/esc'
|
4
|
-
|
5
|
-
module Vedeu
|
6
|
-
class StyleCollection < Virtus::Attribute
|
7
|
-
def coerce(values)
|
8
|
-
return '' if values.nil? || values.empty?
|
9
|
-
|
10
|
-
if values.is_a?(::Array)
|
11
|
-
values.map { |value| Esc.string(value) }.join
|
12
|
-
|
13
|
-
elsif values.is_a?(::String)
|
14
|
-
Esc.string(values)
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
require_relative 'esc'
|
2
|
-
require_relative 'terminal'
|
3
|
-
|
4
|
-
module Vedeu
|
5
|
-
class Geometry
|
6
|
-
def initialize(interface)
|
7
|
-
@interface = interface
|
8
|
-
end
|
9
|
-
|
10
|
-
def origin(index = 0)
|
11
|
-
Esc.set_position(virtual_y(index), virtual_x)
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
attr_reader :interface
|
17
|
-
|
18
|
-
def virtual_x(index = 0)
|
19
|
-
((x..max_x).to_a)[index]
|
20
|
-
end
|
21
|
-
|
22
|
-
def virtual_y(index = 0)
|
23
|
-
((y..max_y).to_a)[index]
|
24
|
-
end
|
25
|
-
|
26
|
-
def max_y
|
27
|
-
if (y + height) > Terminal.height
|
28
|
-
Terminal.height
|
29
|
-
|
30
|
-
else
|
31
|
-
(y + height)
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def max_x
|
37
|
-
if (x + width) > Terminal.width
|
38
|
-
Terminal.width
|
39
|
-
|
40
|
-
else
|
41
|
-
(x + width)
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def height
|
47
|
-
interface.height
|
48
|
-
end
|
49
|
-
|
50
|
-
def width
|
51
|
-
interface.width
|
52
|
-
end
|
53
|
-
|
54
|
-
def x
|
55
|
-
interface.x
|
56
|
-
end
|
57
|
-
|
58
|
-
def y
|
59
|
-
interface.y
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
require_relative '../../../../lib/vedeu/models/style_collection'
|
3
|
-
require_relative '../../../../lib/vedeu/models/stream'
|
4
|
-
|
5
|
-
module Vedeu
|
6
|
-
describe StyleCollection do
|
7
|
-
describe '#coerce' do
|
8
|
-
it 'returns an empty string' do
|
9
|
-
Stream.new({ style: {} }).style.must_equal('')
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,107 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
require_relative '../../../../lib/vedeu/support/geometry'
|
3
|
-
require_relative '../../../../lib/vedeu/models/interface'
|
4
|
-
|
5
|
-
module Vedeu
|
6
|
-
describe Geometry do
|
7
|
-
describe '#origin' do
|
8
|
-
it 'returns the origin for the interface' do
|
9
|
-
interface = Interface.new({
|
10
|
-
name: 'dummy',
|
11
|
-
width: 5,
|
12
|
-
height: 5,
|
13
|
-
x: 1,
|
14
|
-
y: 1,
|
15
|
-
z: 1
|
16
|
-
})
|
17
|
-
Geometry.new(interface).origin.must_equal("\e[1;1H")
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'returns the line position relative to the origin' do
|
21
|
-
interface = Interface.new({
|
22
|
-
name: 'dummy',
|
23
|
-
width: 5,
|
24
|
-
height: 5,
|
25
|
-
x: 1,
|
26
|
-
y: 1,
|
27
|
-
z: 1
|
28
|
-
})
|
29
|
-
Geometry.new(interface).origin(3).must_equal("\e[4;1H")
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'returns the origin for the interface when the interface is at a custom position' do
|
33
|
-
interface = Interface.new({
|
34
|
-
name: 'dummy',
|
35
|
-
width: 5,
|
36
|
-
height: 5,
|
37
|
-
x: 3,
|
38
|
-
y: 6,
|
39
|
-
z: 1
|
40
|
-
})
|
41
|
-
Geometry.new(interface).origin.must_equal("\e[6;3H")
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'returns the line position relative to the origin when the interface is at a custom position' do
|
45
|
-
interface = Interface.new({
|
46
|
-
name: 'dummy',
|
47
|
-
width: 5,
|
48
|
-
height: 5,
|
49
|
-
x: 3,
|
50
|
-
y: 6,
|
51
|
-
z: 1
|
52
|
-
})
|
53
|
-
Geometry.new(interface).origin(3).must_equal("\e[9;3H")
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'clips the maximum height to the terminal height when the height is more than the terminal height' do
|
57
|
-
skip
|
58
|
-
interface = Interface.new({
|
59
|
-
name: 'dummy',
|
60
|
-
width: 5,
|
61
|
-
height: 6,
|
62
|
-
x: 1,
|
63
|
-
y: 20,
|
64
|
-
z: 1
|
65
|
-
})
|
66
|
-
Geometry.new(interface).origin.must_equal("\e[1;1H")
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'returns the value when the height is less than the terminal height' do
|
70
|
-
skip
|
71
|
-
interface = Interface.new({
|
72
|
-
name: 'dummy',
|
73
|
-
width: 5,
|
74
|
-
height: 2,
|
75
|
-
x: 1,
|
76
|
-
y: 20,
|
77
|
-
z: 1
|
78
|
-
})
|
79
|
-
Geometry.new(interface).origin.must_equal("\e[1;1H")
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'clips the maximum width to the terminal width when the width is more than the terminal width' do
|
83
|
-
interface = Interface.new({
|
84
|
-
name: 'dummy',
|
85
|
-
width: 20,
|
86
|
-
height: 5,
|
87
|
-
x: 30,
|
88
|
-
y: 1,
|
89
|
-
z: 1
|
90
|
-
})
|
91
|
-
Geometry.new(interface).origin.must_equal("\e[1;30H")
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'returns the value when the width is less than the terminal width' do
|
95
|
-
interface = Interface.new({
|
96
|
-
name: 'dummy',
|
97
|
-
width: 20,
|
98
|
-
height: 5,
|
99
|
-
x: 15,
|
100
|
-
y: 1,
|
101
|
-
z: 1
|
102
|
-
})
|
103
|
-
Geometry.new(interface).origin.must_equal("\e[1;15H")
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|