vedeu 0.0.14 → 0.0.15
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 +0 -18
- data/lib/vedeu/output/colour.rb +18 -7
- data/lib/vedeu/output/compositor.rb +20 -8
- data/lib/vedeu/process/process.rb +1 -5
- data/lib/vedeu/repository/command.rb +12 -0
- data/lib/vedeu/repository/command_repository.rb +10 -2
- data/lib/vedeu/repository/dummy_command.rb +2 -0
- data/lib/vedeu/repository/dummy_interface.rb +3 -1
- data/lib/vedeu/repository/interface.rb +31 -4
- data/lib/vedeu/repository/interface_repository.rb +5 -1
- data/lib/vedeu/repository/storage.rb +1 -1
- data/lib/vedeu/support/terminal.rb +13 -3
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/application_test.rb +6 -2
- data/test/lib/vedeu/launcher_test.rb +3 -1
- data/test/lib/vedeu/output/background_test.rb +30 -10
- data/test/lib/vedeu/output/colour_test.rb +39 -2
- data/test/lib/vedeu/output/compositor_test.rb +48 -14
- data/test/lib/vedeu/output/directive_test.rb +24 -8
- data/test/lib/vedeu/output/esc_test.rb +48 -16
- data/test/lib/vedeu/output/foreground_test.rb +30 -10
- data/test/lib/vedeu/output/geometry_test.rb +78 -28
- data/test/lib/vedeu/output/position_test.rb +9 -3
- data/test/lib/vedeu/output/renderer_test.rb +15 -5
- data/test/lib/vedeu/output/style_test.rb +30 -10
- data/test/lib/vedeu/output/translator_test.rb +3 -1
- data/test/lib/vedeu/process/event_loop_test.rb +12 -4
- data/test/lib/vedeu/process/exit_test.rb +6 -2
- data/test/lib/vedeu/process/input_test.rb +9 -3
- data/test/lib/vedeu/process/output_test.rb +12 -4
- data/test/lib/vedeu/process/process_test.rb +24 -8
- data/test/lib/vedeu/process/queue_test.rb +32 -8
- data/test/lib/vedeu/repository/command_repository_test.rb +27 -9
- data/test/lib/vedeu/repository/command_test.rb +33 -9
- data/test/lib/vedeu/repository/dummy_command_test.rb +9 -3
- data/test/lib/vedeu/repository/interface_repository_test.rb +18 -6
- data/test/lib/vedeu/repository/interface_test.rb +39 -11
- data/test/lib/vedeu/repository/repository_test.rb +24 -8
- data/test/lib/vedeu/repository/storage_test.rb +39 -2
- data/test/lib/vedeu/support/terminal_test.rb +68 -16
- data/test/lib/vedeu/version_test.rb +3 -1
- data/test/test_helper.rb +3 -0
- data/vedeu.gemspec +13 -12
- metadata +45 -30
@@ -16,25 +16,49 @@ module Vedeu
|
|
16
16
|
}
|
17
17
|
}
|
18
18
|
|
19
|
-
it
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
it
|
24
|
-
|
19
|
+
it 'returns a Command instance' do
|
20
|
+
subject.must_be_instance_of(Command)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'sets an instance variable' do
|
24
|
+
subject.instance_variable_get("@attributes").must_equal(attributes)
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'sets an instance variable' do
|
28
|
+
subject.instance_variable_get("@name").must_equal('dummy')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'sets an instance variable' do
|
32
|
+
subject.instance_variable_get("@klass").must_equal(DummyCommand)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'sets an instance variable' do
|
36
|
+
subject.instance_variable_get("@keyword").must_equal('dummy')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'sets an instance variable' do
|
40
|
+
subject.instance_variable_get("@keypress").must_equal('d')
|
41
|
+
end
|
25
42
|
|
26
43
|
describe '#create' do
|
27
44
|
let(:subject) { described_class.create(attributes) }
|
28
45
|
|
29
|
-
it
|
46
|
+
it 'returns a Command instance' do
|
47
|
+
subject.must_be_instance_of(Command)
|
48
|
+
end
|
30
49
|
end
|
31
50
|
|
32
51
|
describe '#execute' do
|
33
52
|
let(:subject) { described_instance.execute(args) }
|
34
53
|
let(:args) { [] }
|
35
54
|
|
36
|
-
it
|
37
|
-
|
55
|
+
it 'returns a Symbol' do
|
56
|
+
subject.must_be_instance_of(Symbol)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'returns the result of execution' do
|
60
|
+
subject.must_equal(:dummy)
|
61
|
+
end
|
38
62
|
end
|
39
63
|
|
40
64
|
describe '#executable' do
|
@@ -6,16 +6,22 @@ module Vedeu
|
|
6
6
|
let(:subject) { described_class.dispatch(command) }
|
7
7
|
let(:command) {}
|
8
8
|
|
9
|
-
it
|
9
|
+
it 'returns a Symbol' do
|
10
|
+
subject.must_be_instance_of(Symbol)
|
11
|
+
end
|
10
12
|
|
11
13
|
context 'when the value exists' do
|
12
14
|
let(:command) { :test_command }
|
13
15
|
|
14
|
-
it
|
16
|
+
it 'returns the value' do
|
17
|
+
subject.must_equal(:test_command)
|
18
|
+
end
|
15
19
|
end
|
16
20
|
|
17
21
|
context 'when the value does not exist' do
|
18
|
-
it
|
22
|
+
it 'returns the default value' do
|
23
|
+
subject.must_equal(:dummy)
|
24
|
+
end
|
19
25
|
end
|
20
26
|
end
|
21
27
|
end
|
@@ -11,37 +11,49 @@ module Vedeu
|
|
11
11
|
describe '.activate' do
|
12
12
|
let(:subject) { described_class.activate(interface) }
|
13
13
|
|
14
|
-
it
|
14
|
+
it 'returns an Array' do
|
15
|
+
subject.must_be_instance_of(Array)
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
19
|
describe '.deactivate' do
|
18
20
|
let(:subject) { described_class.deactivate }
|
19
21
|
|
20
|
-
it
|
22
|
+
it 'returns an Array' do
|
23
|
+
subject.must_be_instance_of(Array)
|
24
|
+
end
|
21
25
|
end
|
22
26
|
|
23
27
|
describe '.activated' do
|
24
28
|
let(:subject) { described_class.activated }
|
25
29
|
|
26
|
-
it
|
30
|
+
it 'returns an Interface' do
|
31
|
+
subject.must_be_instance_of(Interface)
|
32
|
+
end
|
27
33
|
end
|
28
34
|
|
29
35
|
describe '.find_by_name' do
|
30
36
|
let(:subject) { described_class.find_by_name(value) }
|
31
37
|
|
32
|
-
it
|
38
|
+
it 'returns an Interface' do
|
39
|
+
subject.must_be_instance_of(Interface)
|
40
|
+
end
|
33
41
|
end
|
34
42
|
|
35
43
|
describe '.initial_state' do
|
36
44
|
let(:subject) { described_class.initial_state }
|
37
45
|
|
38
|
-
it
|
46
|
+
it 'returns an Array' do
|
47
|
+
# subject.must_be_instance_of(Array)
|
48
|
+
end
|
39
49
|
end
|
40
50
|
|
41
51
|
describe '.klass' do
|
42
52
|
let(:subject) { described_class.klass }
|
43
53
|
|
44
|
-
it
|
54
|
+
it 'returns an Interface' do
|
55
|
+
subject.must_equal(Interface)
|
56
|
+
end
|
45
57
|
end
|
46
58
|
end
|
47
59
|
end
|
@@ -7,37 +7,65 @@ module Vedeu
|
|
7
7
|
let(:subject) { described_instance }
|
8
8
|
let(:attributes) {
|
9
9
|
{
|
10
|
-
name:
|
11
|
-
|
10
|
+
name: 'dummy',
|
11
|
+
width: 40,
|
12
|
+
height: 5,
|
13
|
+
x: 1,
|
14
|
+
y: 1,
|
15
|
+
fg: :red,
|
16
|
+
bg: :blue
|
12
17
|
}
|
13
18
|
}
|
14
19
|
let(:result) {}
|
15
20
|
|
16
|
-
|
21
|
+
it 'returns an Interface instance' do
|
22
|
+
subject.must_be_instance_of(Interface)
|
17
23
|
end
|
18
24
|
|
19
|
-
it
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
it
|
25
|
+
it 'sets an instance variable' do
|
26
|
+
subject.instance_variable_get("@attributes").must_equal(attributes)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'sets an instance variable' do
|
30
|
+
subject.instance_variable_get("@active").must_equal(false)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'sets an instance variable' do
|
34
|
+
subject.instance_variable_get("@name").must_equal('dummy')
|
35
|
+
end
|
24
36
|
|
25
37
|
describe '#create' do
|
26
38
|
let(:subject) { described_class.create(attributes) }
|
27
39
|
|
28
|
-
it
|
40
|
+
it 'returns an Interface' do
|
41
|
+
subject.must_be_instance_of(Interface)
|
42
|
+
end
|
29
43
|
end
|
30
44
|
|
31
45
|
describe '#initial_state' do
|
32
46
|
let(:subject) { described_instance.initial_state }
|
33
47
|
|
34
|
-
|
48
|
+
before { Compositor.stubs(:arrange) }
|
49
|
+
|
50
|
+
it 'returns a NilClass' do
|
51
|
+
subject.must_be_instance_of(NilClass)
|
52
|
+
end
|
35
53
|
end
|
36
54
|
|
37
55
|
describe '#geometry' do
|
38
56
|
let(:subject) { described_instance.geometry }
|
39
57
|
|
40
|
-
it
|
58
|
+
it 'returns a Geometry' do
|
59
|
+
subject.must_be_instance_of(Geometry)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#colour' do
|
64
|
+
let(:subject) { described_instance.colour }
|
65
|
+
|
66
|
+
it 'returns a Colour' do
|
67
|
+
subject.must_be_instance_of(Colour)
|
68
|
+
end
|
41
69
|
end
|
42
70
|
end
|
43
71
|
end
|
@@ -31,27 +31,35 @@ module Vedeu
|
|
31
31
|
describe '#adaptor' do
|
32
32
|
let(:subject) { described_class.adaptor }
|
33
33
|
|
34
|
-
it
|
34
|
+
it 'returns a Storage' do
|
35
|
+
subject.must_be_instance_of(Storage)
|
36
|
+
end
|
35
37
|
end
|
36
38
|
|
37
39
|
describe '#adaptor=' do
|
38
40
|
let(:subject) { described_class.adaptor=(adaptor) }
|
39
41
|
let(:adaptor) { Storage.new }
|
40
42
|
|
41
|
-
it
|
43
|
+
it 'returns a Storage' do
|
44
|
+
subject.must_be_instance_of(Storage)
|
45
|
+
end
|
42
46
|
end
|
43
47
|
|
44
48
|
describe '#find' do
|
45
49
|
let(:subject) { described_class.find(id) }
|
46
50
|
let(:id) { @dummy.id }
|
47
51
|
|
48
|
-
it
|
52
|
+
it 'returns a Dummy' do
|
53
|
+
subject.must_be_instance_of(Dummy)
|
54
|
+
end
|
49
55
|
end
|
50
56
|
|
51
57
|
describe '#all' do
|
52
58
|
let(:subject) { described_class.all }
|
53
59
|
|
54
|
-
it
|
60
|
+
it 'returns all the stored items' do
|
61
|
+
subject.must_be_instance_of(Array)
|
62
|
+
end
|
55
63
|
end
|
56
64
|
|
57
65
|
describe '#query' do
|
@@ -60,27 +68,35 @@ module Vedeu
|
|
60
68
|
let(:attribute) { :name }
|
61
69
|
let(:value) { "dummy" }
|
62
70
|
|
63
|
-
it
|
71
|
+
it 'returns a Dummy' do
|
72
|
+
subject.must_be_instance_of(Dummy)
|
73
|
+
end
|
64
74
|
end
|
65
75
|
|
66
76
|
describe '#create' do
|
67
77
|
let(:subject) { described_class.create(model) }
|
68
78
|
let(:model) { @dummy }
|
69
79
|
|
70
|
-
it
|
80
|
+
it 'returns a Dummy' do
|
81
|
+
subject.must_be_instance_of(Dummy)
|
82
|
+
end
|
71
83
|
end
|
72
84
|
|
73
85
|
describe '#delete' do
|
74
86
|
let(:subject) { described_class.delete(model) }
|
75
87
|
let(:model) { @dummy }
|
76
88
|
|
77
|
-
it
|
89
|
+
it 'returns a Dummy' do
|
90
|
+
subject.must_be_instance_of(Dummy)
|
91
|
+
end
|
78
92
|
end
|
79
93
|
|
80
94
|
describe '#reset' do
|
81
95
|
let(:subject) { described_class.reset }
|
82
96
|
|
83
|
-
it
|
97
|
+
it 'returns an Array' do
|
98
|
+
subject.must_be_instance_of(Array)
|
99
|
+
end
|
84
100
|
end
|
85
101
|
end
|
86
102
|
end
|
@@ -4,35 +4,72 @@ module Vedeu
|
|
4
4
|
describe Storage do
|
5
5
|
let(:described_class) { Storage }
|
6
6
|
let(:subject) { described_class.new }
|
7
|
-
let(:record) {}
|
7
|
+
let(:record) { DummyCommand.new }
|
8
8
|
let(:klass) {}
|
9
9
|
|
10
|
-
it
|
10
|
+
it 'returns a Storage instance' do
|
11
|
+
subject.must_be_instance_of(Storage)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'sets an instance variable' do
|
15
|
+
subject.instance_variable_get("@counter").must_equal(0)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'sets an instance variable' do
|
19
|
+
subject.instance_variable_get("@map").must_equal({})
|
20
|
+
end
|
11
21
|
|
12
22
|
describe '#create' do
|
13
23
|
let(:subject) { described_class.new.create(record) }
|
24
|
+
|
25
|
+
it 'returns the stored record' do
|
26
|
+
subject.must_be_instance_of(DummyCommand)
|
27
|
+
end
|
14
28
|
end
|
15
29
|
|
16
30
|
describe '#delete' do
|
17
31
|
let(:subject) { described_class.new.delete(record) }
|
32
|
+
|
33
|
+
it 'returns a NilClass' do
|
34
|
+
subject.must_be_instance_of(NilClass)
|
35
|
+
end
|
18
36
|
end
|
19
37
|
|
20
38
|
describe '#reset' do
|
21
39
|
let(:subject) { described_class.new.reset(klass) }
|
40
|
+
|
41
|
+
it 'returns an Array' do
|
42
|
+
subject.must_be_instance_of(Array)
|
43
|
+
end
|
22
44
|
end
|
23
45
|
|
24
46
|
describe '#find' do
|
25
47
|
let(:subject) { described_class.new.find(klass, id) }
|
48
|
+
let(:id) { 'dummy' }
|
49
|
+
|
50
|
+
it 'returns a NilClass' do
|
51
|
+
subject.must_be_instance_of(NilClass)
|
52
|
+
end
|
26
53
|
end
|
27
54
|
|
28
55
|
describe '#all' do
|
29
56
|
let(:subject) { described_class.new.all(klass) }
|
57
|
+
|
58
|
+
it 'returns an Array' do
|
59
|
+
subject.must_be_instance_of(Array)
|
60
|
+
end
|
30
61
|
end
|
31
62
|
|
32
63
|
describe '#query' do
|
33
64
|
let(:subject) { described_class.new.query(klass, attribute, value) }
|
34
65
|
let(:attribute) {}
|
35
66
|
let(:value) {}
|
67
|
+
|
68
|
+
context 'when the item cannot be found' do
|
69
|
+
it 'returns a Hash' do
|
70
|
+
subject.must_be_instance_of(Hash)
|
71
|
+
end
|
72
|
+
end
|
36
73
|
end
|
37
74
|
end
|
38
75
|
end
|
@@ -16,9 +16,13 @@ module Vedeu
|
|
16
16
|
|
17
17
|
before { console.stubs(:gets).returns("test\n") }
|
18
18
|
|
19
|
-
it
|
19
|
+
it 'returns a String' do
|
20
|
+
subject.must_be_instance_of(String)
|
21
|
+
end
|
20
22
|
|
21
|
-
it
|
23
|
+
it 'returns the entered string' do
|
24
|
+
subject.must_equal("test")
|
25
|
+
end
|
22
26
|
end
|
23
27
|
|
24
28
|
describe '.output' do
|
@@ -26,13 +30,21 @@ module Vedeu
|
|
26
30
|
|
27
31
|
before { console.stubs(:print).returns("test") }
|
28
32
|
|
29
|
-
it
|
33
|
+
it 'returns a String' do
|
34
|
+
subject.must_be_instance_of(String)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'returns the output' do
|
38
|
+
subject.must_equal("test")
|
39
|
+
end
|
30
40
|
end
|
31
41
|
|
32
42
|
describe '.width' do
|
33
43
|
let(:subject) { described_class.width }
|
34
44
|
|
35
|
-
it
|
45
|
+
it 'returns a Fixnum' do
|
46
|
+
subject.must_be_instance_of(Fixnum)
|
47
|
+
end
|
36
48
|
|
37
49
|
it 'returns the width of the terminal' do
|
38
50
|
subject.must_equal(80)
|
@@ -42,7 +54,9 @@ module Vedeu
|
|
42
54
|
describe '.height' do
|
43
55
|
let(:subject) { described_class.height }
|
44
56
|
|
45
|
-
it
|
57
|
+
it 'returns a Fixnum' do
|
58
|
+
subject.must_be_instance_of(Fixnum)
|
59
|
+
end
|
46
60
|
|
47
61
|
it 'returns the height of the terminal' do
|
48
62
|
subject.must_equal(25)
|
@@ -52,7 +66,9 @@ module Vedeu
|
|
52
66
|
describe '.size' do
|
53
67
|
let(:subject) { described_class.size }
|
54
68
|
|
55
|
-
it
|
69
|
+
it 'returns an Array' do
|
70
|
+
subject.must_be_instance_of(Array)
|
71
|
+
end
|
56
72
|
|
57
73
|
it 'returns the width and height of the terminal' do
|
58
74
|
subject.must_equal([25, 80])
|
@@ -84,12 +100,16 @@ module Vedeu
|
|
84
100
|
|
85
101
|
before { Esc.stubs(:clear).returns('') }
|
86
102
|
|
87
|
-
it
|
103
|
+
it 'returns a NilClass' do
|
104
|
+
subject.must_be_instance_of(NilClass)
|
105
|
+
end
|
88
106
|
|
89
107
|
context 'capturing output' do
|
90
108
|
let(:io) { capture_io { subject }.join }
|
91
109
|
|
92
|
-
it
|
110
|
+
it 'returns a String' do
|
111
|
+
io.must_be_instance_of(String)
|
112
|
+
end
|
93
113
|
end
|
94
114
|
end
|
95
115
|
|
@@ -97,49 +117,81 @@ module Vedeu
|
|
97
117
|
let(:subject) { described_class.clear_line(index) }
|
98
118
|
let(:index) { 0 }
|
99
119
|
|
100
|
-
it
|
120
|
+
it 'returns a NilClass' do
|
121
|
+
subject.must_be_instance_of(NilClass)
|
122
|
+
end
|
101
123
|
end
|
102
124
|
|
103
125
|
describe '.show_cursor' do
|
104
126
|
let(:subject) { described_class.show_cursor }
|
105
127
|
|
106
|
-
it
|
128
|
+
it 'returns a NilClass' do
|
129
|
+
subject.must_be_instance_of(NilClass)
|
130
|
+
end
|
107
131
|
|
108
132
|
context 'capturing output' do
|
109
133
|
let(:io) { capture_io { subject }.join }
|
110
134
|
|
111
|
-
it
|
135
|
+
it 'returns a String' do
|
136
|
+
io.must_be_instance_of(String)
|
137
|
+
end
|
112
138
|
end
|
113
139
|
end
|
114
140
|
|
115
141
|
describe '.hide_cursor' do
|
116
142
|
let(:subject) { described_class.hide_cursor }
|
117
143
|
|
118
|
-
it
|
144
|
+
it 'returns a NilClass' do
|
145
|
+
subject.must_be_instance_of(NilClass)
|
146
|
+
end
|
147
|
+
|
148
|
+
context 'capturing output' do
|
149
|
+
let(:io) { capture_io { subject }.join }
|
150
|
+
|
151
|
+
it 'returns a String' do
|
152
|
+
io.must_be_instance_of(String)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe '.reset_colours' do
|
158
|
+
let(:subject) { described_class.reset_colours }
|
159
|
+
|
160
|
+
it 'returns a NilClass' do
|
161
|
+
subject.must_be_instance_of(NilClass)
|
162
|
+
end
|
119
163
|
|
120
164
|
context 'capturing output' do
|
121
165
|
let(:io) { capture_io { subject }.join }
|
122
166
|
|
123
|
-
it
|
167
|
+
it 'returns a String' do
|
168
|
+
io.must_be_instance_of(String)
|
169
|
+
end
|
124
170
|
end
|
125
171
|
end
|
126
172
|
|
127
173
|
describe '#initialize' do
|
128
174
|
let(:subject) { described_class.new }
|
129
175
|
|
130
|
-
it
|
176
|
+
it 'returns a Terminal instance' do
|
177
|
+
subject.must_be_instance_of(Terminal)
|
178
|
+
end
|
131
179
|
end
|
132
180
|
|
133
181
|
describe '#open' do
|
134
182
|
let(:subject) { described_class.new.open }
|
135
183
|
|
136
|
-
it
|
184
|
+
it 'returns a NilClass' do
|
185
|
+
subject.must_be_instance_of(NilClass)
|
186
|
+
end
|
137
187
|
end
|
138
188
|
|
139
189
|
describe '#initial_setup!' do
|
140
190
|
let(:subject) { described_class.new.initial_setup! }
|
141
191
|
|
142
|
-
it
|
192
|
+
it 'returns a NilClass' do
|
193
|
+
subject.must_be_instance_of(NilClass)
|
194
|
+
end
|
143
195
|
end
|
144
196
|
end
|
145
197
|
end
|