vedeu 0.0.25 → 0.0.26
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/README.md +10 -9
- data/Rakefile +0 -10
- data/bin/composition +1 -1
- data/examples/single_interface_app.rb +7 -4
- data/lib/vedeu.rb +19 -48
- data/lib/vedeu/application.rb +8 -7
- data/lib/vedeu/configuration.rb +4 -4
- data/lib/vedeu/input/input.rb +3 -0
- data/lib/vedeu/launcher.rb +3 -0
- data/lib/vedeu/models/background.rb +13 -0
- data/lib/vedeu/models/coercions.rb +21 -0
- data/lib/vedeu/models/colour.rb +22 -0
- data/lib/vedeu/{repository → models}/command.rb +2 -0
- data/lib/vedeu/models/composition.rb +30 -0
- data/lib/vedeu/models/foreground.rb +13 -0
- data/lib/vedeu/models/interface.rb +62 -0
- data/lib/vedeu/models/interface_collection.rb +24 -0
- data/lib/vedeu/models/line.rb +22 -0
- data/lib/vedeu/models/line_collection.rb +27 -0
- data/lib/vedeu/models/presentation.rb +13 -0
- data/lib/vedeu/models/stream.rb +21 -0
- data/lib/vedeu/models/stream_collection.rb +27 -0
- data/lib/vedeu/models/style_collection.rb +23 -0
- data/lib/vedeu/output/interface_renderer.rb +62 -0
- data/lib/vedeu/output/output.rb +6 -5
- data/lib/vedeu/process/process.rb +15 -31
- data/lib/vedeu/repository/command_repository.rb +13 -14
- data/lib/vedeu/repository/interface_repository.rb +12 -13
- data/lib/vedeu/repository/repository.rb +2 -0
- data/lib/vedeu/{output → support}/cursor.rb +2 -0
- data/lib/vedeu/support/esc.rb +112 -0
- data/lib/vedeu/support/events.rb +21 -0
- data/lib/vedeu/support/geometry.rb +66 -0
- data/lib/vedeu/support/parser.rb +27 -0
- data/lib/vedeu/support/terminal.rb +31 -134
- data/lib/vedeu/{output → support}/translator.rb +12 -8
- data/lib/vedeu/{output → support}/wordwrap.rb +2 -4
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/application_test.rb +7 -2
- data/test/lib/vedeu/configuration_test.rb +13 -8
- data/test/lib/vedeu/input/input_test.rb +2 -1
- data/test/lib/vedeu/launcher_test.rb +7 -2
- data/test/lib/vedeu/models/background_test.rb +35 -0
- data/test/lib/vedeu/models/colour_test.rb +71 -0
- data/test/lib/vedeu/models/command_test.rb +109 -0
- data/test/lib/vedeu/models/composition_test.rb +187 -0
- data/test/lib/vedeu/models/foreground_test.rb +35 -0
- data/test/lib/vedeu/models/interface_collection_test.rb +57 -0
- data/test/lib/vedeu/models/interface_test.rb +220 -0
- data/test/lib/vedeu/models/line_collection_test.rb +69 -0
- data/test/lib/vedeu/models/line_test.rb +76 -0
- data/test/lib/vedeu/models/presentation_test.rb +8 -0
- data/test/lib/vedeu/models/stream_collection_test.rb +57 -0
- data/test/lib/vedeu/models/stream_test.rb +76 -0
- data/test/lib/vedeu/models/style_collection_test.rb +22 -0
- data/test/lib/vedeu/output/interface_renderer_test.rb +12 -0
- data/test/lib/vedeu/output/output_test.rb +15 -30
- data/test/lib/vedeu/process/process_test.rb +22 -44
- data/test/lib/vedeu/repository/command_repository_test.rb +22 -16
- data/test/lib/vedeu/repository/interface_repository_test.rb +62 -14
- data/test/lib/vedeu/repository/repository_test.rb +1 -0
- data/test/lib/vedeu/repository/storage_test.rb +13 -6
- data/test/lib/vedeu/{output → support}/cursor_test.rb +1 -0
- data/test/lib/vedeu/support/esc_test.rb +348 -0
- data/test/lib/vedeu/support/events_test.rb +37 -0
- data/test/lib/vedeu/support/exit_test.rb +1 -0
- data/test/lib/vedeu/support/geometry_test.rb +131 -0
- data/test/lib/vedeu/support/parser_test.rb +56 -0
- data/test/lib/vedeu/support/queue_test.rb +1 -0
- data/test/lib/vedeu/support/terminal_test.rb +1 -119
- data/test/lib/vedeu/{output → support}/translator_test.rb +17 -12
- data/test/lib/vedeu/{output → support}/wordwrap_test.rb +1 -0
- data/test/lib/vedeu/version_test.rb +1 -0
- data/test/lib/vedeu_test.rb +1 -0
- data/{lib/vedeu/repository → test/support}/dummy_command.rb +0 -0
- data/{lib/vedeu/repository → test/support}/dummy_interface.rb +0 -0
- data/test/support/json/int1_lin1_str1.json +10 -0
- data/test/support/json/int1_lin1_str3.json +18 -0
- data/test/support/json/int1_lin2_str1.json +17 -0
- data/test/support/json/int1_lin2_str3.json +33 -0
- data/test/support/json/int1_lin2_str3_styles.json +43 -0
- data/test/support/json/int2_lin1_str1.json +20 -0
- data/test/support/json/int2_lin1_str3.json +36 -0
- data/test/support/json/int2_lin2_str1.json +34 -0
- data/test/support/json/int2_lin2_str3.json +66 -0
- data/test/support/json/int2_lin2_str3_styles.json +158 -0
- data/test/support/output_1.json +9 -0
- data/test/support/output_1.rb +14 -0
- data/test/support/output_2.json +1 -0
- data/test/support/output_2.rb +19 -0
- data/test/test_helper.rb +0 -2
- data/vedeu.gemspec +0 -3
- metadata +98 -150
- data/config/cucumber.yml +0 -8
- data/documentation/composition.ebnf +0 -7
- data/documentation/diagram/ColourDirective.png +0 -0
- data/documentation/diagram/Directive.png +0 -0
- data/documentation/diagram/Interface.png +0 -0
- data/documentation/diagram/Output.png +0 -0
- data/documentation/diagram/PositionDirective.png +0 -0
- data/documentation/diagram/Stream.png +0 -0
- data/documentation/diagram/StyleDirective.png +0 -0
- data/documentation/diagram/rr-1.35.837.png +0 -0
- data/documentation/index.html +0 -325
- data/features/getting_started.feature +0 -10
- data/features/step_definitions/vedeu_steps.rb +0 -11
- data/features/support/env.rb +0 -12
- data/lib/vedeu/output/background.rb +0 -27
- data/lib/vedeu/output/base.rb +0 -57
- data/lib/vedeu/output/buffer/composition.rb +0 -24
- data/lib/vedeu/output/buffer/formatting.rb +0 -25
- data/lib/vedeu/output/buffer/interface.rb +0 -14
- data/lib/vedeu/output/buffer/line.rb +0 -14
- data/lib/vedeu/output/buffer/stream.rb +0 -14
- data/lib/vedeu/output/buffer/style.rb +0 -11
- data/lib/vedeu/output/colour.rb +0 -39
- data/lib/vedeu/output/compositor.rb +0 -72
- data/lib/vedeu/output/directive.rb +0 -63
- data/lib/vedeu/output/esc.rb +0 -61
- data/lib/vedeu/output/foreground.rb +0 -27
- data/lib/vedeu/output/geometry.rb +0 -71
- data/lib/vedeu/output/layer.rb +0 -9
- data/lib/vedeu/output/menu.rb +0 -26
- data/lib/vedeu/output/position.rb +0 -35
- data/lib/vedeu/output/style.rb +0 -38
- data/lib/vedeu/repository/interface.rb +0 -62
- data/lib/vedeu/support/json_parser.rb +0 -25
- data/lib/vedeu/support/options.rb +0 -4
- data/test/lib/vedeu/output/background_test.rb +0 -67
- data/test/lib/vedeu/output/base_test.rb +0 -8
- data/test/lib/vedeu/output/buffer/composition_test.rb +0 -57
- data/test/lib/vedeu/output/buffer/formatting_test.rb +0 -9
- data/test/lib/vedeu/output/buffer/interface_test.rb +0 -38
- data/test/lib/vedeu/output/buffer/line_test.rb +0 -64
- data/test/lib/vedeu/output/buffer/stream_test.rb +0 -61
- data/test/lib/vedeu/output/buffer/style_test.rb +0 -8
- data/test/lib/vedeu/output/colour_test.rb +0 -104
- data/test/lib/vedeu/output/compositor_test.rb +0 -247
- data/test/lib/vedeu/output/directive_test.rb +0 -82
- data/test/lib/vedeu/output/esc_test.rb +0 -175
- data/test/lib/vedeu/output/foreground_test.rb +0 -67
- data/test/lib/vedeu/output/geometry_test.rb +0 -190
- data/test/lib/vedeu/output/layer_test.rb +0 -35
- data/test/lib/vedeu/output/menu_test.rb +0 -13
- data/test/lib/vedeu/output/position_test.rb +0 -48
- data/test/lib/vedeu/output/style_test.rb +0 -132
- data/test/lib/vedeu/repository/command_test.rb +0 -73
- data/test/lib/vedeu/repository/dummy_command_test.rb +0 -27
- data/test/lib/vedeu/repository/dummy_interface_test.rb +0 -7
- data/test/lib/vedeu/repository/interface_test.rb +0 -79
- data/test/lib/vedeu/support/json_parser_test.rb +0 -45
- data/test/support/composition.json +0 -47
- data/test/support/composition.rb +0 -5
- data/test/support/composition.xml +0 -36
- data/test/support/multi_interface.json +0 -34
- data/test/support/single_interface.json +0 -19
@@ -1,35 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe Layer do
|
5
|
-
let(:described_class) { Layer }
|
6
|
-
let(:described_instance) { described_class.new(index) }
|
7
|
-
let(:index) {}
|
8
|
-
|
9
|
-
it 'returns a Layer instance' do
|
10
|
-
described_instance.must_be_instance_of(Layer)
|
11
|
-
end
|
12
|
-
|
13
|
-
describe '#index' do
|
14
|
-
let(:subject) { described_instance.index }
|
15
|
-
|
16
|
-
it 'returns a Fixnum' do
|
17
|
-
subject.must_be_instance_of(Fixnum)
|
18
|
-
end
|
19
|
-
|
20
|
-
context 'using a index' do
|
21
|
-
let(:index) { 2 }
|
22
|
-
|
23
|
-
it 'returns the index' do
|
24
|
-
subject.must_equal(2)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'using the default' do
|
29
|
-
it 'returns the default' do
|
30
|
-
subject.must_equal(0)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe Menu do
|
5
|
-
let(:described_class) { Menu }
|
6
|
-
let(:described_instance) { described_class.new(index) }
|
7
|
-
let(:index) {}
|
8
|
-
|
9
|
-
it 'returns a Menu instance' do
|
10
|
-
described_instance.must_be_instance_of(Menu)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe Position do
|
5
|
-
let(:described_class) { Position }
|
6
|
-
let(:described_instance) { described_class.new }
|
7
|
-
|
8
|
-
it 'returns a Position instance' do
|
9
|
-
described_instance.must_be_instance_of(Position)
|
10
|
-
end
|
11
|
-
|
12
|
-
describe '.set' do
|
13
|
-
let(:subject) { described_class.set }
|
14
|
-
|
15
|
-
it 'returns a String' do
|
16
|
-
subject.must_be_instance_of(String)
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'when no coordinates are provided' do
|
20
|
-
it 'returns a position escape sequence' do
|
21
|
-
subject.must_equal('')
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'when coordinates are provided' do
|
26
|
-
let(:subject) { described_class.set(y, x) }
|
27
|
-
let(:y) { 12 }
|
28
|
-
let(:x) { 19 }
|
29
|
-
|
30
|
-
it 'returns a position escape sequence' do
|
31
|
-
subject.must_equal("\e[12;19H")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '.reset' do
|
37
|
-
let(:subject) { described_class.reset }
|
38
|
-
|
39
|
-
it 'returns a String' do
|
40
|
-
subject.must_be_instance_of(String)
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'returns a position escape sequence' do
|
44
|
-
subject.must_equal("\e[1;1H")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,132 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe Style do
|
5
|
-
let(:described_class) { Style }
|
6
|
-
|
7
|
-
describe '.set' do
|
8
|
-
let(:subject) { described_class.set(style) }
|
9
|
-
let(:style) {}
|
10
|
-
|
11
|
-
it 'returns a String' do
|
12
|
-
subject.must_be_instance_of(String)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'returns an empty string' do
|
16
|
-
subject.must_equal('')
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'when the style is blink' do
|
20
|
-
let(:style) { :blink }
|
21
|
-
|
22
|
-
it 'returns an escape sequence' do
|
23
|
-
subject.must_equal("\e[5m")
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context 'when the style is blink off' do
|
28
|
-
let(:style) { :blink_off }
|
29
|
-
|
30
|
-
it 'returns an escape sequence' do
|
31
|
-
subject.must_equal("\e[25m")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
context 'when the style is bold' do
|
36
|
-
let(:style) { :bold }
|
37
|
-
|
38
|
-
it 'returns an escape sequence' do
|
39
|
-
subject.must_equal("\e[1m")
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'when the style is bold off' do
|
44
|
-
let(:style) { :bold_off }
|
45
|
-
|
46
|
-
it 'returns an escape sequence' do
|
47
|
-
subject.must_equal("\e[21m")
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context 'when the style is clear' do
|
52
|
-
let(:style) { :clear }
|
53
|
-
|
54
|
-
it 'returns an escape sequence' do
|
55
|
-
subject.must_equal("\e[2J")
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
context 'when the style is hide_cursor' do
|
60
|
-
let(:style) { :hide_cursor }
|
61
|
-
|
62
|
-
it 'returns an escape sequence' do
|
63
|
-
subject.must_equal("\e[?25l")
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
context 'when the style is negative' do
|
68
|
-
let(:style) { :negative }
|
69
|
-
|
70
|
-
it 'returns an escape sequence' do
|
71
|
-
subject.must_equal("\e[7m")
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'when the style is positive' do
|
76
|
-
let(:style) { :positive }
|
77
|
-
|
78
|
-
it 'returns an escape sequence' do
|
79
|
-
subject.must_equal("\e[27m")
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
context 'when the style is reset' do
|
84
|
-
let(:style) { :reset }
|
85
|
-
|
86
|
-
it 'returns an escape sequence' do
|
87
|
-
subject.must_equal("\e[0m")
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
context 'when the style is normal' do
|
92
|
-
let(:style) { :normal }
|
93
|
-
|
94
|
-
it 'returns an escape sequence' do
|
95
|
-
subject.must_equal("\e[24m\e[21m\e[27m")
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
context 'when the style is dim' do
|
100
|
-
let(:style) { :dim }
|
101
|
-
|
102
|
-
it 'returns an escape sequence' do
|
103
|
-
subject.must_equal("\e[2m")
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
context 'when the style is show_cursor' do
|
108
|
-
let(:style) { :show_cursor }
|
109
|
-
|
110
|
-
it 'returns an escape sequence' do
|
111
|
-
subject.must_equal("\e[?25h")
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
context 'when the style is underline' do
|
116
|
-
let(:style) { :underline }
|
117
|
-
|
118
|
-
it 'returns an escape sequence' do
|
119
|
-
subject.must_equal("\e[4m")
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
context 'when the style is underline off' do
|
124
|
-
let(:style) { :underline_off }
|
125
|
-
|
126
|
-
it 'returns an escape sequence' do
|
127
|
-
subject.must_equal("\e[24m")
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe Command do
|
5
|
-
let(:described_class) { Command }
|
6
|
-
let(:described_instance) { described_class.new(attributes) }
|
7
|
-
let(:subject) { described_instance }
|
8
|
-
let(:attributes) {
|
9
|
-
{
|
10
|
-
name: 'dummy',
|
11
|
-
entity: DummyCommand,
|
12
|
-
keyword: "dummy",
|
13
|
-
keypress: "d",
|
14
|
-
arguments: []
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
it 'returns a Command instance' do
|
19
|
-
subject.must_be_instance_of(Command)
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'has a name attribute' do
|
23
|
-
subject.name.must_be_instance_of(String)
|
24
|
-
|
25
|
-
subject.name.must_equal('dummy')
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'has an entity attribute' do
|
29
|
-
subject.entity.must_be_instance_of(Class)
|
30
|
-
|
31
|
-
subject.entity.must_equal(DummyCommand)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'has a keypress attribute' do
|
35
|
-
subject.keypress.must_be_instance_of(String)
|
36
|
-
|
37
|
-
subject.keypress.must_equal('d')
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'has an keyword attribute' do
|
41
|
-
subject.keyword.must_be_instance_of(String)
|
42
|
-
|
43
|
-
subject.keyword.must_equal('dummy')
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'has an arguments attribute' do
|
47
|
-
subject.arguments.must_be_instance_of(Array)
|
48
|
-
|
49
|
-
subject.arguments.must_equal([])
|
50
|
-
end
|
51
|
-
|
52
|
-
describe '#execute' do
|
53
|
-
let(:subject) { described_instance.execute(args) }
|
54
|
-
let(:args) { [] }
|
55
|
-
|
56
|
-
it 'returns a Symbol' do
|
57
|
-
subject.must_be_instance_of(Symbol)
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'returns the result of execution' do
|
61
|
-
subject.must_equal(:dummy)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe '#executable' do
|
66
|
-
let(:subject) { described_instance.executable }
|
67
|
-
|
68
|
-
it 'returns a proc' do
|
69
|
-
subject.class.to_s.must_equal('Proc')
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe DummyCommand do
|
5
|
-
let(:described_class) { DummyCommand }
|
6
|
-
let(:subject) { described_class.dispatch(command) }
|
7
|
-
let(:command) {}
|
8
|
-
|
9
|
-
it 'returns a Symbol' do
|
10
|
-
subject.must_be_instance_of(Symbol)
|
11
|
-
end
|
12
|
-
|
13
|
-
context 'when the value exists' do
|
14
|
-
let(:command) { :test_command }
|
15
|
-
|
16
|
-
it 'returns the value' do
|
17
|
-
subject.must_equal(:test_command)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'when the value does not exist' do
|
22
|
-
it 'returns the default value' do
|
23
|
-
subject.must_equal(:dummy)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe Interface do
|
5
|
-
let(:described_class) { Interface }
|
6
|
-
let(:described_instance) { described_class.new(attributes) }
|
7
|
-
let(:subject) { described_instance }
|
8
|
-
let(:attributes) {
|
9
|
-
{
|
10
|
-
name: 'dummy',
|
11
|
-
width: 15,
|
12
|
-
height: 2,
|
13
|
-
x: 1,
|
14
|
-
y: 1,
|
15
|
-
fg: :red,
|
16
|
-
bg: :blue,
|
17
|
-
cursor: true,
|
18
|
-
}
|
19
|
-
}
|
20
|
-
let(:result) {}
|
21
|
-
|
22
|
-
before { InterfaceRepository.create(attributes) }
|
23
|
-
after { InterfaceRepository.reset }
|
24
|
-
|
25
|
-
it 'returns an Interface instance' do
|
26
|
-
subject.must_be_instance_of(Interface)
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'sets an instance variable' do
|
30
|
-
subject.instance_variable_get('@attributes').must_equal(attributes)
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'sets an instance variable' do
|
34
|
-
subject.instance_variable_get('@name').must_equal('dummy')
|
35
|
-
end
|
36
|
-
|
37
|
-
describe '#refresh' do
|
38
|
-
let(:subject) { described_instance.refresh }
|
39
|
-
|
40
|
-
# it 'returns a Array' do
|
41
|
-
# subject.must_be_instance_of(Array)
|
42
|
-
# end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe '#geometry' do
|
46
|
-
let(:subject) { described_instance.geometry }
|
47
|
-
|
48
|
-
it 'returns a Geometry' do
|
49
|
-
subject.must_be_instance_of(Geometry)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe '#colour' do
|
54
|
-
let(:subject) { described_instance.colour }
|
55
|
-
|
56
|
-
it 'returns a Colour' do
|
57
|
-
subject.must_be_instance_of(Colour)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe '#cursor' do
|
62
|
-
let(:subject) { described_instance.cursor }
|
63
|
-
|
64
|
-
context 'when the cursor is on' do
|
65
|
-
it 'returns an escape sequence' do
|
66
|
-
subject.must_be_instance_of(String)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context 'when the cursor is off' do
|
71
|
-
let(:attributes) { { cursor: false } }
|
72
|
-
|
73
|
-
it 'returns an escape sequence' do
|
74
|
-
subject.must_be_instance_of(String)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require_relative '../../../test_helper'
|
2
|
-
|
3
|
-
module Vedeu
|
4
|
-
describe JSONParser do
|
5
|
-
let(:described_class) { JSONParser }
|
6
|
-
let(:subject) { described_class.new(json) }
|
7
|
-
let(:json) { "[]" }
|
8
|
-
|
9
|
-
it 'returns a JSONParser instance' do
|
10
|
-
subject.must_be_instance_of(JSONParser)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'sets an instance variable' do
|
14
|
-
subject.instance_variable_get("@json").must_equal(json)
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when the instance variable is nil' do
|
18
|
-
let(:json) {}
|
19
|
-
|
20
|
-
it 'set the instance variable to empty string' do
|
21
|
-
subject.instance_variable_get("@json").must_equal('')
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe '#parse' do
|
26
|
-
let(:subject) { described_class.parse(json) }
|
27
|
-
|
28
|
-
context 'when the JSON contains a single interface' do
|
29
|
-
let(:json) { File.read('test/support/single_interface.json') }
|
30
|
-
|
31
|
-
it 'returns a Composition instance' do
|
32
|
-
subject.must_be_instance_of(Buffer::Composition)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context 'when the JSON contains multiple interfaces' do
|
37
|
-
let(:json) { File.read('test/support/multi_interface.json') }
|
38
|
-
|
39
|
-
it 'returns a Composition instance' do
|
40
|
-
subject.must_be_instance_of(Buffer::Composition)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|