vedeu 0.0.36 → 0.0.37
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 +38 -3
- data/deps.md +269 -0
- data/lib/vedeu/application.rb +8 -2
- data/lib/vedeu/configuration.rb +8 -0
- data/lib/vedeu/models/interface.rb +4 -11
- data/lib/vedeu/output/{interface_renderer.rb → clear_interface.rb} +4 -23
- data/lib/vedeu/output/render_interface.rb +27 -0
- data/lib/vedeu/{support/parsing → parsing}/hash_parser.rb +1 -1
- data/lib/vedeu/{support/parsing → parsing}/json_parser.rb +0 -0
- data/lib/vedeu/{support → parsing}/parser.rb +3 -3
- data/lib/vedeu/{output → parsing}/text_adaptor.rb +0 -0
- data/lib/vedeu/process/process.rb +1 -1
- data/lib/vedeu/repository/event_repository.rb +2 -4
- data/lib/vedeu/support/esc.rb +0 -5
- data/lib/vedeu/support/terminal.rb +5 -11
- data/test/example_app/bin/app +1 -1
- data/test/example_app/lib/app.rb +3 -2
- data/test/lib/vedeu/configuration_test.rb +10 -0
- data/test/lib/vedeu/models/attributes/collection_test.rb +3 -13
- data/test/lib/vedeu/models/attributes/line_collection_test.rb +2 -0
- data/test/lib/vedeu/models/stream_test.rb +11 -17
- data/test/lib/vedeu/output/{interface_renderer_test.rb → clear_interface_test.rb} +7 -19
- data/test/lib/vedeu/output/render_interface_test.rb +27 -0
- data/test/lib/vedeu/{support/parsing → parsing}/hash_parser_test.rb +2 -2
- data/test/lib/vedeu/{support/parsing → parsing}/json_parser_test.rb +2 -2
- data/test/lib/vedeu/{support → parsing}/parser_test.rb +1 -1
- data/test/lib/vedeu/{output → parsing}/text_adaptor_test.rb +1 -1
- data/test/lib/vedeu/process/process_test.rb +5 -7
- data/test/lib/vedeu/{support → repository}/event_repository_test.rb +0 -0
- data/test/lib/vedeu/support/esc_test.rb +0 -8
- data/test/lib/vedeu/support/queue_test.rb +2 -12
- data/test/lib/vedeu/support/terminal_test.rb +10 -6
- data/test/stats.sh +29 -0
- data/vedeu.gemspec +1 -1
- metadata +25 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30086255eba975054c131f5aa42aeff7e4ab4d4c
|
4
|
+
data.tar.gz: 338f9940b945d89ee8bc4e21cb068d8e5eccc3b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df5e8b21200f6197027e7a8430729fea7e1dcf5cfdc757119aedbff3a6179b6a6754fdd4088063980f6881dd650bbd30eeb42f0a732c27e2602fc65725b37f9e
|
7
|
+
data.tar.gz: 0bd5207420d3d37e1383d44a8fd88e5dc97bb1f07450f162eee30e0bb0cabd98ece969c59536651ed29f624ab412aa1490faed55399063d920a12997715b2417
|
data/README.md
CHANGED
@@ -29,9 +29,28 @@ Expect proper documentation soon!
|
|
29
29
|
|
30
30
|
interface :main, { }
|
31
31
|
|
32
|
-
command
|
33
|
-
|
34
|
-
|
32
|
+
command :thing, { entity: SomeClass,
|
33
|
+
keypress: 't',
|
34
|
+
keyword: 'thing' }
|
35
|
+
|
36
|
+
event :some_event do
|
37
|
+
# ...
|
38
|
+
end
|
39
|
+
|
40
|
+
event :other_event do |hash_args, array_args, args|
|
41
|
+
# ...
|
42
|
+
end
|
43
|
+
|
44
|
+
event :key do |key|
|
45
|
+
case key
|
46
|
+
when 'a' then puts "Apple"
|
47
|
+
when 'b' then puts "Banana"
|
48
|
+
# ...
|
49
|
+
when :f1 then run(:some_event)
|
50
|
+
when :f2 then
|
51
|
+
run(:other_event, { args: here }, [:or, :here], :etc)
|
52
|
+
end
|
53
|
+
end
|
35
54
|
end
|
36
55
|
|
37
56
|
|
@@ -91,6 +110,22 @@ Referring to the above example, interfaces have a name, and various default attr
|
|
91
110
|
As above, commands have a name, a class which performs the action
|
92
111
|
(you define this), and they can be invoked with a keypress or a keyword. At this time, Vedeu will call the `.dispatch` method on your class, passing any arguments you originally defined in the command. In the future, both the method called and the arguments could be dynamic.
|
93
112
|
|
113
|
+
### On Defining Events
|
114
|
+
|
115
|
+
event :event_name do |arg1, arg2|
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
One can define events which perform work or trigger other events. Vedeu has 3 built-in events which are namespaced with underscores as to hopefully not cause a collision with events you wish to create:
|
120
|
+
|
121
|
+
- `:_exit_` when triggered, Vedeu will attempt to exit.
|
122
|
+
|
123
|
+
- `:_keypress_` triggering this event will cause the triggering of the `key` event; which you should define to 'do things'. If the `escape` key is pressed, then `key` is triggered with the argument `:escape`, also an internal event `_mode_switch_` is triggered.
|
124
|
+
|
125
|
+
- `:_mode_switch_` when triggered (after the user presses `escape`), Vedeu switches from a "raw mode" terminal to a "cooked mode" terminal. The idea here being that the raw mode is for single keypress actions, whilst cooked mode allows the user to enter more elaborate commands- such as commands with arguments.
|
126
|
+
|
127
|
+
Note: Overriding or adding additional events to the Vedeu event namespace may cause unpredictable results.
|
128
|
+
|
94
129
|
|
95
130
|
### Geometry
|
96
131
|
|
data/deps.md
ADDED
@@ -0,0 +1,269 @@
|
|
1
|
+
----------------------------------------------------------------------
|
2
|
+
By class
|
3
|
+
----------------------------------------------------------------------
|
4
|
+
|
5
|
+
Application
|
6
|
+
Input
|
7
|
+
Output
|
8
|
+
Process
|
9
|
+
Terminal
|
10
|
+
|
11
|
+
ClearInterface
|
12
|
+
|
13
|
+
Collection
|
14
|
+
|
15
|
+
Colour
|
16
|
+
Esc
|
17
|
+
|
18
|
+
Command
|
19
|
+
|
20
|
+
CommandRepository
|
21
|
+
Command
|
22
|
+
Repository
|
23
|
+
|
24
|
+
Composition
|
25
|
+
InterfaceCollection
|
26
|
+
|
27
|
+
Compositor
|
28
|
+
Composition
|
29
|
+
|
30
|
+
Configuration
|
31
|
+
|
32
|
+
Coordinate
|
33
|
+
Esc
|
34
|
+
Terminal
|
35
|
+
|
36
|
+
Esc
|
37
|
+
Translator
|
38
|
+
|
39
|
+
EventRepository
|
40
|
+
|
41
|
+
Exit
|
42
|
+
EventRepository
|
43
|
+
|
44
|
+
HashParser
|
45
|
+
TextAdaptor
|
46
|
+
|
47
|
+
Input
|
48
|
+
EventRepository
|
49
|
+
Queue
|
50
|
+
Terminal
|
51
|
+
|
52
|
+
Interface
|
53
|
+
ClearInterface
|
54
|
+
Coordinate
|
55
|
+
LineCollection
|
56
|
+
Presentation
|
57
|
+
Queue
|
58
|
+
RenderInterface
|
59
|
+
Style
|
60
|
+
Terminal
|
61
|
+
|
62
|
+
InterfaceCollection
|
63
|
+
InterfaceRepository
|
64
|
+
|
65
|
+
InterfaceRepository
|
66
|
+
Interface
|
67
|
+
Repository
|
68
|
+
|
69
|
+
JSONParser
|
70
|
+
|
71
|
+
Launcher
|
72
|
+
Application
|
73
|
+
Configuration
|
74
|
+
|
75
|
+
Line
|
76
|
+
Presentation
|
77
|
+
StreamCollection
|
78
|
+
Style
|
79
|
+
|
80
|
+
LineCollection
|
81
|
+
Collection
|
82
|
+
Line
|
83
|
+
|
84
|
+
Menu
|
85
|
+
|
86
|
+
Output
|
87
|
+
InterfaceRepository
|
88
|
+
Terminal
|
89
|
+
|
90
|
+
Parser
|
91
|
+
Compositor
|
92
|
+
HashParser
|
93
|
+
JSONParser
|
94
|
+
|
95
|
+
Presentation
|
96
|
+
Colour
|
97
|
+
|
98
|
+
Process
|
99
|
+
CommandRepository
|
100
|
+
Parser
|
101
|
+
Queue
|
102
|
+
|
103
|
+
Queue
|
104
|
+
|
105
|
+
RenderInterface
|
106
|
+
ClearInterface
|
107
|
+
|
108
|
+
Repository
|
109
|
+
Storage
|
110
|
+
|
111
|
+
Storage
|
112
|
+
|
113
|
+
Stream
|
114
|
+
Presentation
|
115
|
+
Style
|
116
|
+
|
117
|
+
StreamCollection
|
118
|
+
Collection
|
119
|
+
Stream
|
120
|
+
|
121
|
+
Style
|
122
|
+
Esc
|
123
|
+
|
124
|
+
Template
|
125
|
+
|
126
|
+
Terminal
|
127
|
+
Esc
|
128
|
+
Application
|
129
|
+
|
130
|
+
TextAdaptor
|
131
|
+
|
132
|
+
Translator
|
133
|
+
|
134
|
+
Wordwrap
|
135
|
+
|
136
|
+
|
137
|
+
----------------------------------------------------------------------
|
138
|
+
Orphans
|
139
|
+
----------------------------------------------------------------------
|
140
|
+
|
141
|
+
Template - orphaned
|
142
|
+
Wordwrap - orphaned
|
143
|
+
Menu - orphaned
|
144
|
+
|
145
|
+
Exit - orphaned
|
146
|
+
EventRepository
|
147
|
+
|
148
|
+
|
149
|
+
----------------------------------------------------------------------
|
150
|
+
Grouped
|
151
|
+
----------------------------------------------------------------------
|
152
|
+
|
153
|
+
Launcher
|
154
|
+
Application
|
155
|
+
Input
|
156
|
+
EventRepository
|
157
|
+
Queue
|
158
|
+
Terminal
|
159
|
+
Esc
|
160
|
+
Translator
|
161
|
+
Output
|
162
|
+
InterfaceRepository
|
163
|
+
Interface
|
164
|
+
ClearInterface
|
165
|
+
Coordinate
|
166
|
+
Esc
|
167
|
+
Translator
|
168
|
+
Terminal
|
169
|
+
Esc
|
170
|
+
Translator
|
171
|
+
LineCollection
|
172
|
+
Collection
|
173
|
+
Line
|
174
|
+
Presentation
|
175
|
+
Colour
|
176
|
+
Esc
|
177
|
+
Translator
|
178
|
+
StreamCollection
|
179
|
+
Collection
|
180
|
+
Stream
|
181
|
+
Presentation
|
182
|
+
Colour
|
183
|
+
Esc
|
184
|
+
Translator
|
185
|
+
Style
|
186
|
+
Esc
|
187
|
+
Translator
|
188
|
+
Style
|
189
|
+
Esc
|
190
|
+
Translator
|
191
|
+
Presentation
|
192
|
+
Colour
|
193
|
+
Esc
|
194
|
+
Translator
|
195
|
+
Queue
|
196
|
+
RenderInterface
|
197
|
+
ClearInterface
|
198
|
+
Style
|
199
|
+
Esc
|
200
|
+
Translator
|
201
|
+
Terminal
|
202
|
+
Esc
|
203
|
+
Translator
|
204
|
+
Repository
|
205
|
+
Storage
|
206
|
+
Terminal
|
207
|
+
Esc
|
208
|
+
Translator
|
209
|
+
Process
|
210
|
+
CommandRepository
|
211
|
+
Command
|
212
|
+
Repository
|
213
|
+
Storage
|
214
|
+
Parser
|
215
|
+
Compositor
|
216
|
+
Composition
|
217
|
+
InterfaceCollection
|
218
|
+
InterfaceRepository
|
219
|
+
Interface
|
220
|
+
ClearInterface
|
221
|
+
Coordinate
|
222
|
+
Esc
|
223
|
+
Translator
|
224
|
+
Terminal
|
225
|
+
Esc
|
226
|
+
Translator
|
227
|
+
LineCollection
|
228
|
+
Collection
|
229
|
+
Line
|
230
|
+
Presentation
|
231
|
+
Colour
|
232
|
+
Esc
|
233
|
+
Translator
|
234
|
+
StreamCollection
|
235
|
+
Collection
|
236
|
+
Stream
|
237
|
+
Presentation
|
238
|
+
Colour
|
239
|
+
Esc
|
240
|
+
Translator
|
241
|
+
Style
|
242
|
+
Esc
|
243
|
+
Translator
|
244
|
+
Style
|
245
|
+
Esc
|
246
|
+
Translator
|
247
|
+
Presentation
|
248
|
+
Colour
|
249
|
+
Esc
|
250
|
+
Translator
|
251
|
+
Queue
|
252
|
+
RenderInterface
|
253
|
+
ClearInterface
|
254
|
+
Style
|
255
|
+
Esc
|
256
|
+
Translator
|
257
|
+
Terminal
|
258
|
+
Esc
|
259
|
+
Translator
|
260
|
+
Repository
|
261
|
+
Storage
|
262
|
+
HashParser
|
263
|
+
TextAdaptor
|
264
|
+
JSONParser
|
265
|
+
Queue
|
266
|
+
Terminal
|
267
|
+
Esc
|
268
|
+
Translator
|
269
|
+
Configuration
|
data/lib/vedeu/application.rb
CHANGED
@@ -54,9 +54,15 @@ module Vedeu
|
|
54
54
|
|
55
55
|
def interactive
|
56
56
|
loop { yield }
|
57
|
-
|
57
|
+
|
58
58
|
rescue ModeSwitch
|
59
|
-
Terminal.
|
59
|
+
if Terminal.raw_mode?
|
60
|
+
Application.start({ mode: :cooked })
|
61
|
+
|
62
|
+
else
|
63
|
+
Application.start({ mode: :raw })
|
64
|
+
|
65
|
+
end
|
60
66
|
end
|
61
67
|
|
62
68
|
def run_once
|
data/lib/vedeu/configuration.rb
CHANGED
@@ -18,6 +18,14 @@ module Vedeu
|
|
18
18
|
opts.on('-1', '--run-once', 'Run application once.') do
|
19
19
|
@options[:interactive] = false
|
20
20
|
end
|
21
|
+
|
22
|
+
opts.on('-c', '--cooked', 'Run application in cooked mode.') do
|
23
|
+
@options[:mode] = :cooked
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on('-r', '--raw', 'Run application in raw mode (default).') do
|
27
|
+
@options[:mode] = :raw
|
28
|
+
end
|
21
29
|
end
|
22
30
|
parser.parse!(args)
|
23
31
|
|
@@ -4,7 +4,8 @@ require 'virtus'
|
|
4
4
|
require_relative 'attributes/line_collection'
|
5
5
|
require_relative 'presentation'
|
6
6
|
require_relative 'style'
|
7
|
-
require_relative '../output/
|
7
|
+
require_relative '../output/clear_interface'
|
8
|
+
require_relative '../output/render_interface'
|
8
9
|
require_relative '../support/coordinate'
|
9
10
|
require_relative '../support/queue'
|
10
11
|
require_relative '../support/terminal'
|
@@ -40,7 +41,7 @@ module Vedeu
|
|
40
41
|
self.current = dequeue
|
41
42
|
|
42
43
|
elsif no_content?
|
43
|
-
self.current =
|
44
|
+
self.current = ClearInterface.call(self)
|
44
45
|
|
45
46
|
else
|
46
47
|
self.current
|
@@ -64,7 +65,7 @@ module Vedeu
|
|
64
65
|
end
|
65
66
|
|
66
67
|
def to_s
|
67
|
-
|
68
|
+
RenderInterface.call(self)
|
68
69
|
end
|
69
70
|
|
70
71
|
private
|
@@ -73,14 +74,6 @@ module Vedeu
|
|
73
74
|
self.current.nil? || self.current.empty?
|
74
75
|
end
|
75
76
|
|
76
|
-
def render_content
|
77
|
-
InterfaceRenderer.render(self)
|
78
|
-
end
|
79
|
-
|
80
|
-
def clear_interface
|
81
|
-
InterfaceRenderer.clear(self)
|
82
|
-
end
|
83
|
-
|
84
77
|
def geometry
|
85
78
|
@_geometry ||= Coordinate.new(attributes)
|
86
79
|
end
|
@@ -1,13 +1,9 @@
|
|
1
1
|
module Vedeu
|
2
|
-
class
|
3
|
-
def self.
|
2
|
+
class ClearInterface
|
3
|
+
def self.call(interface)
|
4
4
|
new(interface).clear
|
5
5
|
end
|
6
6
|
|
7
|
-
def self.render(interface)
|
8
|
-
new(interface).render
|
9
|
-
end
|
10
|
-
|
11
7
|
def initialize(interface)
|
12
8
|
@interface = interface
|
13
9
|
end
|
@@ -16,23 +12,10 @@ module Vedeu
|
|
16
12
|
set_colour + clear_lines
|
17
13
|
end
|
18
14
|
|
19
|
-
def render
|
20
|
-
out = []
|
21
|
-
content_lines.each_with_index do |line, index|
|
22
|
-
out << origin(index)
|
23
|
-
out << line.to_s
|
24
|
-
end
|
25
|
-
out.join
|
26
|
-
end
|
27
|
-
|
28
15
|
private
|
29
16
|
|
30
17
|
attr_reader :interface
|
31
18
|
|
32
|
-
def content_lines
|
33
|
-
interface.lines
|
34
|
-
end
|
35
|
-
|
36
19
|
def set_colour
|
37
20
|
interface.colour.to_s
|
38
21
|
end
|
@@ -44,10 +27,8 @@ module Vedeu
|
|
44
27
|
end
|
45
28
|
|
46
29
|
def clear_line(index)
|
47
|
-
origin(index) +
|
48
|
-
|
49
|
-
|
50
|
-
def origin(index)
|
30
|
+
interface.origin(index) +
|
31
|
+
(' ' * interface.width) +
|
51
32
|
interface.origin(index)
|
52
33
|
end
|
53
34
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'clear_interface'
|
2
|
+
|
3
|
+
module Vedeu
|
4
|
+
class RenderInterface
|
5
|
+
def self.call(interface)
|
6
|
+
new(interface).render
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(interface)
|
10
|
+
@interface = interface
|
11
|
+
end
|
12
|
+
|
13
|
+
def render
|
14
|
+
out = []
|
15
|
+
out << ClearInterface.call(interface)
|
16
|
+
interface.lines.each_with_index do |line, index|
|
17
|
+
out << interface.origin(index)
|
18
|
+
out << line.to_s
|
19
|
+
end
|
20
|
+
out.join
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
attr_reader :interface
|
26
|
+
end
|
27
|
+
end
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require_relative 'compositor'
|
2
|
-
require_relative '
|
3
|
-
require_relative '
|
1
|
+
require_relative '../support/compositor'
|
2
|
+
require_relative 'hash_parser'
|
3
|
+
require_relative 'json_parser'
|
4
4
|
|
5
5
|
module Vedeu
|
6
6
|
class ParseError < StandardError; end
|
File without changes
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require_relative '../support/terminal'
|
2
|
-
|
3
1
|
module Vedeu
|
4
2
|
module EventRepository
|
5
3
|
extend self
|
@@ -29,9 +27,9 @@ module Vedeu
|
|
29
27
|
end
|
30
28
|
|
31
29
|
def keypress(key)
|
32
|
-
trigger(:_mode_switch_) if key == :escape
|
33
|
-
|
34
30
|
trigger(:key, key)
|
31
|
+
|
32
|
+
trigger(:_mode_switch_) if key == :escape
|
35
33
|
end
|
36
34
|
end
|
37
35
|
end
|
data/lib/vedeu/support/esc.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require_relative 'terminal'
|
2
1
|
require_relative 'translator'
|
3
2
|
|
4
3
|
module Vedeu
|
@@ -11,10 +10,6 @@ module Vedeu
|
|
11
10
|
["\e[48;5;", colour_translator(value), 'm'].join
|
12
11
|
end
|
13
12
|
|
14
|
-
def clear_last_line
|
15
|
-
set_position((Terminal.height - 1), 1) + "\e[2K"
|
16
|
-
end
|
17
|
-
|
18
13
|
def foreground_colour(value = '#ffffff')
|
19
14
|
return '' if value.empty?
|
20
15
|
|
@@ -56,28 +56,22 @@ module Vedeu
|
|
56
56
|
def restore_screen
|
57
57
|
output Esc.string 'show_cursor'
|
58
58
|
output Esc.string 'reset'
|
59
|
-
output
|
59
|
+
output clear_last_line
|
60
60
|
end
|
61
61
|
|
62
62
|
def set_cursor_mode
|
63
63
|
output Esc.string 'show_cursor' unless raw_mode?
|
64
64
|
end
|
65
65
|
|
66
|
-
def mode_switch
|
67
|
-
if raw_mode?
|
68
|
-
Application.start({ mode: :cooked })
|
69
|
-
|
70
|
-
else
|
71
|
-
Application.start({ mode: :raw })
|
72
|
-
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
66
|
def raw_mode?
|
77
67
|
@mode == :raw
|
78
68
|
end
|
79
69
|
# :nocov:
|
80
70
|
|
71
|
+
def clear_last_line
|
72
|
+
Esc.set_position((height - 1), 1) + "\e[2K"
|
73
|
+
end
|
74
|
+
|
81
75
|
def centre
|
82
76
|
[(height / 2), (width / 2)]
|
83
77
|
end
|
data/test/example_app/bin/app
CHANGED
data/test/example_app/lib/app.rb
CHANGED
@@ -78,12 +78,13 @@ module Example
|
|
78
78
|
when 'v' then puts "v was pressed."
|
79
79
|
when :f1 then puts "F1 was pressed."
|
80
80
|
when :f2 then run(:some_event, [:args, :go, :here])
|
81
|
+
when 'x' then run(:_exit_)
|
81
82
|
else
|
82
83
|
end
|
83
84
|
end
|
84
85
|
|
85
|
-
def self.start
|
86
|
-
Vedeu::Launcher.new(
|
86
|
+
def self.start(args = [])
|
87
|
+
Vedeu::Launcher.new(args).execute!
|
87
88
|
end
|
88
89
|
end
|
89
90
|
end
|
@@ -12,6 +12,16 @@ module Vedeu
|
|
12
12
|
Configuration.configure(['--run-once'])
|
13
13
|
.must_equal({ interactive: false })
|
14
14
|
end
|
15
|
+
|
16
|
+
it 'returns the options which instructs Vedeu to run in cooked mode' do
|
17
|
+
Configuration.configure(['--cooked'])
|
18
|
+
.must_equal({ mode: :cooked })
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'returns the options which instructs Vedeu to run in raw mode' do
|
22
|
+
Configuration.configure(['--raw'])
|
23
|
+
.must_equal({ mode: :raw })
|
24
|
+
end
|
15
25
|
end
|
16
26
|
end
|
17
27
|
end
|
@@ -11,19 +11,9 @@ module Vedeu
|
|
11
11
|
describe Collection do
|
12
12
|
describe '#coercer' do
|
13
13
|
it 'returns an empty collection when nil or empty' do
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
it 'returns an empty collection when nil or empty' do
|
18
|
-
Collection.coercer('', TestClass, :key).must_equal([])
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'returns an empty collection when nil or empty' do
|
22
|
-
Collection.coercer([], TestClass, :key).must_equal([])
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'returns an empty collection when nil or empty' do
|
26
|
-
Collection.coercer({}, TestClass, :key).must_equal([])
|
14
|
+
[nil, '', [], {}].each do |empty_value|
|
15
|
+
Collection.coercer(empty_value, TestClass, :key).must_equal([])
|
16
|
+
end
|
27
17
|
end
|
28
18
|
|
29
19
|
it 'returns a single model in a collection when a String' do
|
@@ -4,6 +4,8 @@ require_relative '../../../../../lib/vedeu/models/interface'
|
|
4
4
|
|
5
5
|
module Vedeu
|
6
6
|
describe LineCollection do
|
7
|
+
let(:interface) { Interface.new(attributes) }
|
8
|
+
|
7
9
|
describe '#coerce' do
|
8
10
|
it 'returns an empty collection when there are no lines' do
|
9
11
|
Interface.new({ lines: {} }).lines.must_equal([])
|
@@ -3,31 +3,31 @@ require_relative '../../../../lib/vedeu/models/stream'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Stream do
|
6
|
-
|
7
|
-
|
8
|
-
colour: {
|
6
|
+
let(:stream) {
|
7
|
+
Stream.new({
|
8
|
+
colour: {
|
9
|
+
foreground: '#ff0000',
|
10
|
+
background: '#000000'
|
11
|
+
},
|
12
|
+
text: 'Some text',
|
13
|
+
style: 'normal'
|
9
14
|
})
|
15
|
+
}
|
16
|
+
|
17
|
+
it 'has a colour attribute' do
|
10
18
|
stream.colour.must_be_instance_of(Colour)
|
11
19
|
end
|
12
20
|
|
13
21
|
it 'has a text attribute' do
|
14
|
-
stream = Stream.new({ text: 'Some text' })
|
15
22
|
stream.text.must_equal('Some text')
|
16
23
|
end
|
17
24
|
|
18
25
|
it 'has a style attribute' do
|
19
|
-
stream = Stream.new({ style: 'normal' })
|
20
26
|
stream.style.must_equal("\e[24m\e[21m\e[27m")
|
21
27
|
end
|
22
28
|
|
23
29
|
describe '#to_s' do
|
24
30
|
it 'returns a String' do
|
25
|
-
stream = Stream.new({
|
26
|
-
colour: { foreground: '#ff0000', background: '#000000' },
|
27
|
-
style: 'normal',
|
28
|
-
text: 'Some text'
|
29
|
-
})
|
30
|
-
|
31
31
|
stream.to_s.must_equal(
|
32
32
|
"\e[38;5;196m\e[48;5;16m" \
|
33
33
|
"\e[24m\e[21m\e[27m" \
|
@@ -38,12 +38,6 @@ module Vedeu
|
|
38
38
|
|
39
39
|
describe '#to_json' do
|
40
40
|
it 'returns a String' do
|
41
|
-
stream = Stream.new({
|
42
|
-
colour: { foreground: '#ff0000', background: '#000000' },
|
43
|
-
style: 'normal',
|
44
|
-
text: 'Some text'
|
45
|
-
})
|
46
|
-
|
47
41
|
stream.to_json.must_equal("{\"colour\":{\"foreground\":\"#ff0000\",\"background\":\"#000000\"},\"style\":[\"normal\"],\"text\":\"Some text\"}")
|
48
42
|
end
|
49
43
|
end
|
@@ -1,20 +1,20 @@
|
|
1
1
|
require_relative '../../../test_helper'
|
2
2
|
require_relative '../../../../lib/vedeu/repository/interface_repository'
|
3
|
-
require_relative '../../../../lib/vedeu/output/
|
3
|
+
require_relative '../../../../lib/vedeu/output/clear_interface'
|
4
4
|
require_relative '../../../../lib/vedeu/models/interface'
|
5
5
|
|
6
6
|
module Vedeu
|
7
|
-
describe
|
7
|
+
describe ClearInterface do
|
8
8
|
before { InterfaceRepository.reset }
|
9
9
|
|
10
|
-
describe '.
|
10
|
+
describe '.call' do
|
11
11
|
it 'returns the escape sequence to clear the whole interface' do
|
12
12
|
interface = Interface.new({
|
13
|
-
name: '.
|
13
|
+
name: 'ClearInterface.call',
|
14
14
|
width: 5,
|
15
15
|
height: 2
|
16
16
|
})
|
17
|
-
|
17
|
+
ClearInterface.call(interface).must_equal(
|
18
18
|
"\e[1;1H \e[1;1H" \
|
19
19
|
"\e[2;1H \e[2;1H"
|
20
20
|
)
|
@@ -22,7 +22,7 @@ module Vedeu
|
|
22
22
|
|
23
23
|
it 'returns the escape sequence to clear the whole interface with specified colours' do
|
24
24
|
interface = Interface.new({
|
25
|
-
name: '.
|
25
|
+
name: 'ClearInterface.call',
|
26
26
|
width: 5,
|
27
27
|
height: 2,
|
28
28
|
colour: {
|
@@ -30,24 +30,12 @@ module Vedeu
|
|
30
30
|
background: '#ffff00'
|
31
31
|
}
|
32
32
|
})
|
33
|
-
|
33
|
+
ClearInterface.call(interface).must_equal(
|
34
34
|
"\e[38;5;46m\e[48;5;226m" \
|
35
35
|
"\e[1;1H \e[1;1H" \
|
36
36
|
"\e[2;1H \e[2;1H"
|
37
37
|
)
|
38
38
|
end
|
39
39
|
end
|
40
|
-
|
41
|
-
describe '.render' do
|
42
|
-
it 'returns the content for the interface' do
|
43
|
-
interface = Interface.new({
|
44
|
-
name: '.render',
|
45
|
-
width: 5,
|
46
|
-
height: 2,
|
47
|
-
lines: 'InterfaceRenderer.render'
|
48
|
-
})
|
49
|
-
InterfaceRenderer.render(interface).must_equal("\e[1;1HInterfaceRenderer.render")
|
50
|
-
end
|
51
|
-
end
|
52
40
|
end
|
53
41
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative '../../../test_helper'
|
2
|
+
require_relative '../../../../lib/vedeu/repository/interface_repository'
|
3
|
+
require_relative '../../../../lib/vedeu/output/clear_interface'
|
4
|
+
require_relative '../../../../lib/vedeu/output/render_interface'
|
5
|
+
require_relative '../../../../lib/vedeu/models/interface'
|
6
|
+
|
7
|
+
module Vedeu
|
8
|
+
describe RenderInterface do
|
9
|
+
before { InterfaceRepository.reset }
|
10
|
+
|
11
|
+
describe '.call' do
|
12
|
+
it 'returns the content for the interface' do
|
13
|
+
interface = Interface.new({
|
14
|
+
name: '.call',
|
15
|
+
width: 5,
|
16
|
+
height: 2,
|
17
|
+
lines: 'RenderInterface.call'
|
18
|
+
})
|
19
|
+
RenderInterface.call(interface).must_equal(
|
20
|
+
"\e[1;1H \e[1;1H" \
|
21
|
+
"\e[2;1H \e[2;1H" \
|
22
|
+
"\e[1;1HRenderInterface.call"
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -25,31 +25,31 @@ module Vedeu
|
|
25
25
|
|
26
26
|
describe Process do
|
27
27
|
describe '.evaluate' do
|
28
|
-
|
28
|
+
before do
|
29
|
+
CommandRepository.reset
|
29
30
|
Queue.reset
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'returns false when there is no input' do
|
30
34
|
Process.evaluate.must_be_instance_of(FalseClass)
|
31
35
|
end
|
32
36
|
|
33
37
|
it 'raises an exception when the result is :stop' do
|
34
|
-
CommandRepository.reset
|
35
38
|
CommandRepository.create({
|
36
39
|
name: 'quit',
|
37
40
|
entity: QuitCommand,
|
38
41
|
keypress: 'q'
|
39
42
|
})
|
40
|
-
Queue.reset
|
41
43
|
Queue.enqueue('q')
|
42
44
|
proc { Process.evaluate }.must_raise(StopIteration)
|
43
45
|
end
|
44
46
|
|
45
47
|
it 'returns a collection of interfaces when there is a result' do
|
46
|
-
CommandRepository.reset
|
47
48
|
CommandRepository.create({
|
48
49
|
name: 'test',
|
49
50
|
entity: TestCommand,
|
50
51
|
keypress: 't'
|
51
52
|
})
|
52
|
-
Queue.reset
|
53
53
|
Queue.enqueue('t')
|
54
54
|
evaluation = Process.evaluate
|
55
55
|
|
@@ -58,13 +58,11 @@ module Vedeu
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'returns a NilClass when there is no result' do
|
61
|
-
CommandRepository.reset
|
62
61
|
CommandRepository.create({
|
63
62
|
name: 'no_result',
|
64
63
|
entity: NoResultCommand,
|
65
64
|
keypress: 'n'
|
66
65
|
})
|
67
|
-
Queue.reset
|
68
66
|
Queue.enqueue('n')
|
69
67
|
Process.evaluate.must_be_instance_of(NilClass)
|
70
68
|
end
|
File without changes
|
@@ -13,14 +13,6 @@ module Vedeu
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
describe '.clear_last_line' do
|
17
|
-
it 'returns an escape sequence to clear the last line' do
|
18
|
-
IO.console.stub :winsize, [25, 25] do
|
19
|
-
Esc.clear_last_line.must_equal("\e[24;1H\e[2K")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
16
|
describe '.foreground_colour' do
|
25
17
|
it 'returns an escape sequence' do
|
26
18
|
Esc.foreground_colour.must_equal("\e[38;5;231m")
|
@@ -3,14 +3,14 @@ require_relative '../../../../lib/vedeu/support/queue'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Queue do
|
6
|
+
before { Queue.reset }
|
7
|
+
|
6
8
|
describe '.dequeue' do
|
7
9
|
it 'returns a NilClass when the queue is empty' do
|
8
|
-
Queue.reset
|
9
10
|
Queue.dequeue.must_be_instance_of(NilClass)
|
10
11
|
end
|
11
12
|
|
12
13
|
it 'returns the first entry added when the queue is not empty' do
|
13
|
-
Queue.reset
|
14
14
|
Queue.enqueue(:result)
|
15
15
|
Queue.dequeue.must_be_instance_of(Symbol)
|
16
16
|
end
|
@@ -18,32 +18,27 @@ module Vedeu
|
|
18
18
|
|
19
19
|
describe '.enqueue' do
|
20
20
|
it 'contains the enqueued item' do
|
21
|
-
Queue.reset
|
22
21
|
Queue.enqueue(:result).size.must_equal(1)
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
26
25
|
describe '.enqueued?' do
|
27
26
|
it 'returns true when the queue is not empty' do
|
28
|
-
Queue.reset
|
29
27
|
Queue.enqueue(:result)
|
30
28
|
Queue.enqueued?.must_be_instance_of(TrueClass)
|
31
29
|
end
|
32
30
|
|
33
31
|
it 'returns false when the queue is empty' do
|
34
|
-
Queue.reset
|
35
32
|
Queue.enqueued?.must_be_instance_of(FalseClass)
|
36
33
|
end
|
37
34
|
end
|
38
35
|
|
39
36
|
describe '.entries' do
|
40
37
|
it 'returns an empty collection when the queue is empty' do
|
41
|
-
Queue.reset
|
42
38
|
Queue.entries.must_equal([])
|
43
39
|
end
|
44
40
|
|
45
41
|
it 'returns all the enqueue items when the queue is not empty' do
|
46
|
-
Queue.reset
|
47
42
|
Queue.enqueue(:queued_entry)
|
48
43
|
Queue.entries.must_equal([:queued_entry])
|
49
44
|
end
|
@@ -51,12 +46,10 @@ module Vedeu
|
|
51
46
|
|
52
47
|
describe '.size' do
|
53
48
|
it 'returns the size of the queue when the queue is empty' do
|
54
|
-
Queue.reset
|
55
49
|
Queue.size.must_equal(0)
|
56
50
|
end
|
57
51
|
|
58
52
|
it 'returns the size of the queue when the queue is not empty' do
|
59
|
-
Queue.reset
|
60
53
|
Queue.enqueue(:result).enqueue(:result)
|
61
54
|
Queue.size.must_equal(2)
|
62
55
|
end
|
@@ -64,7 +57,6 @@ module Vedeu
|
|
64
57
|
|
65
58
|
describe '.clear' do
|
66
59
|
it 'returns an empty array' do
|
67
|
-
Queue.reset
|
68
60
|
Queue.enqueue(:result)
|
69
61
|
Queue.reset.must_be_empty
|
70
62
|
end
|
@@ -72,12 +64,10 @@ module Vedeu
|
|
72
64
|
|
73
65
|
describe '.view' do
|
74
66
|
it 'returns the queue as a String when the queue is empty' do
|
75
|
-
Queue.reset
|
76
67
|
Queue.view.must_equal('[]')
|
77
68
|
end
|
78
69
|
|
79
70
|
it 'returns the queue as a String when the queue is not empty' do
|
80
|
-
Queue.reset
|
81
71
|
Queue.enqueue(:result)
|
82
72
|
Queue.view.must_equal('[:result]')
|
83
73
|
end
|
@@ -3,9 +3,10 @@ require_relative '../../../../lib/vedeu/support/terminal'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Terminal do
|
6
|
+
let(:console) { IO.console }
|
7
|
+
|
6
8
|
describe '.input' do
|
7
9
|
it 'returns the entered string' do
|
8
|
-
console = IO.console
|
9
10
|
console.stub :gets, "test\n" do
|
10
11
|
Terminal.input.must_equal('test')
|
11
12
|
end
|
@@ -18,9 +19,16 @@ module Vedeu
|
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
22
|
+
describe '.clear_last_line' do
|
23
|
+
it 'returns an escape sequence to clear the last line' do
|
24
|
+
console.stub :winsize, [25, 25] do
|
25
|
+
Terminal.clear_last_line.must_equal("\e[24;1H\e[2K")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
21
30
|
describe '.centre' do
|
22
31
|
it 'returns the centre point on the terminal' do
|
23
|
-
console = IO.console
|
24
32
|
console.stub :winsize, [25, 80] do
|
25
33
|
Terminal.centre.must_equal([12, 40])
|
26
34
|
end
|
@@ -29,7 +37,6 @@ module Vedeu
|
|
29
37
|
|
30
38
|
describe '.width' do
|
31
39
|
it 'returns the width of the terminal' do
|
32
|
-
console = IO.console
|
33
40
|
console.stub :winsize, [25, 80] do
|
34
41
|
Terminal.width.must_equal(80)
|
35
42
|
end
|
@@ -38,7 +45,6 @@ module Vedeu
|
|
38
45
|
|
39
46
|
describe '.height' do
|
40
47
|
it 'returns the height of the terminal' do
|
41
|
-
console = IO.console
|
42
48
|
console.stub :winsize, [25, 80] do
|
43
49
|
Terminal.height.must_equal(25)
|
44
50
|
end
|
@@ -47,7 +53,6 @@ module Vedeu
|
|
47
53
|
|
48
54
|
describe '.size' do
|
49
55
|
it 'returns the width and height of the terminal' do
|
50
|
-
console = IO.console
|
51
56
|
console.stub :winsize, [25, 80] do
|
52
57
|
Terminal.size.must_equal([25, 80])
|
53
58
|
end
|
@@ -56,7 +61,6 @@ module Vedeu
|
|
56
61
|
|
57
62
|
describe '.console' do
|
58
63
|
it 'returns the console' do
|
59
|
-
console = IO.console
|
60
64
|
Terminal.console.must_equal(console)
|
61
65
|
end
|
62
66
|
end
|
data/test/stats.sh
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
function main {
|
6
|
+
for rev in `revisions`; do
|
7
|
+
echo "`number_of_lines ^lib` `number_of_lines ^test` `commit_description`"
|
8
|
+
done
|
9
|
+
}
|
10
|
+
|
11
|
+
function revisions {
|
12
|
+
git rev-list --reverse HEAD
|
13
|
+
}
|
14
|
+
|
15
|
+
function commit_description {
|
16
|
+
git log --oneline -1 $rev
|
17
|
+
}
|
18
|
+
|
19
|
+
function number_of_lines () {
|
20
|
+
git ls-tree -r $rev |
|
21
|
+
awk '{print $4, $3}' |
|
22
|
+
grep "$1" |
|
23
|
+
grep "\.rb" |
|
24
|
+
awk '{print $2}' |
|
25
|
+
xargs git show |
|
26
|
+
wc -l
|
27
|
+
}
|
28
|
+
|
29
|
+
main
|
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.37'
|
8
8
|
spec.authors = ['Gavin Laking']
|
9
9
|
spec.email = ['gavinlaking@gmail.com']
|
10
10
|
spec.summary = %q{A terminal case of wonderland.}
|
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.37
|
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-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- README.md
|
168
168
|
- Rakefile
|
169
169
|
- bin/vedeu
|
170
|
+
- deps.md
|
170
171
|
- lib/vedeu.rb
|
171
172
|
- lib/vedeu/application.rb
|
172
173
|
- lib/vedeu/configuration.rb
|
@@ -184,10 +185,14 @@ files:
|
|
184
185
|
- lib/vedeu/models/presentation.rb
|
185
186
|
- lib/vedeu/models/stream.rb
|
186
187
|
- lib/vedeu/models/style.rb
|
187
|
-
- lib/vedeu/output/
|
188
|
+
- lib/vedeu/output/clear_interface.rb
|
188
189
|
- lib/vedeu/output/output.rb
|
190
|
+
- lib/vedeu/output/render_interface.rb
|
189
191
|
- lib/vedeu/output/template.rb
|
190
|
-
- lib/vedeu/
|
192
|
+
- lib/vedeu/parsing/hash_parser.rb
|
193
|
+
- lib/vedeu/parsing/json_parser.rb
|
194
|
+
- lib/vedeu/parsing/parser.rb
|
195
|
+
- lib/vedeu/parsing/text_adaptor.rb
|
191
196
|
- lib/vedeu/process/process.rb
|
192
197
|
- lib/vedeu/repository/command_repository.rb
|
193
198
|
- lib/vedeu/repository/event_repository.rb
|
@@ -199,9 +204,6 @@ files:
|
|
199
204
|
- lib/vedeu/support/esc.rb
|
200
205
|
- lib/vedeu/support/exit.rb
|
201
206
|
- lib/vedeu/support/menu.rb
|
202
|
-
- lib/vedeu/support/parser.rb
|
203
|
-
- lib/vedeu/support/parsing/hash_parser.rb
|
204
|
-
- lib/vedeu/support/parsing/json_parser.rb
|
205
207
|
- lib/vedeu/support/queue.rb
|
206
208
|
- lib/vedeu/support/terminal.rb
|
207
209
|
- lib/vedeu/support/translator.rb
|
@@ -225,29 +227,31 @@ files:
|
|
225
227
|
- test/lib/vedeu/models/presentation_test.rb
|
226
228
|
- test/lib/vedeu/models/stream_test.rb
|
227
229
|
- test/lib/vedeu/models/style_test.rb
|
228
|
-
- test/lib/vedeu/output/
|
230
|
+
- test/lib/vedeu/output/clear_interface_test.rb
|
229
231
|
- test/lib/vedeu/output/output_test.rb
|
232
|
+
- test/lib/vedeu/output/render_interface_test.rb
|
230
233
|
- test/lib/vedeu/output/template.rb
|
231
|
-
- test/lib/vedeu/
|
234
|
+
- test/lib/vedeu/parsing/hash_parser_test.rb
|
235
|
+
- test/lib/vedeu/parsing/json_parser_test.rb
|
236
|
+
- test/lib/vedeu/parsing/parser_test.rb
|
237
|
+
- test/lib/vedeu/parsing/text_adaptor_test.rb
|
232
238
|
- test/lib/vedeu/process/process_test.rb
|
233
239
|
- test/lib/vedeu/repository/command_repository_test.rb
|
240
|
+
- test/lib/vedeu/repository/event_repository_test.rb
|
234
241
|
- test/lib/vedeu/repository/interface_repository_test.rb
|
235
242
|
- test/lib/vedeu/repository/repository_test.rb
|
236
243
|
- test/lib/vedeu/repository/storage_test.rb
|
237
244
|
- test/lib/vedeu/support/compositor_test.rb
|
238
245
|
- test/lib/vedeu/support/coordinate_test.rb
|
239
246
|
- test/lib/vedeu/support/esc_test.rb
|
240
|
-
- test/lib/vedeu/support/event_repository_test.rb
|
241
247
|
- test/lib/vedeu/support/exit_test.rb
|
242
248
|
- test/lib/vedeu/support/menu_test.rb
|
243
|
-
- test/lib/vedeu/support/parser_test.rb
|
244
|
-
- test/lib/vedeu/support/parsing/hash_parser_test.rb
|
245
|
-
- test/lib/vedeu/support/parsing/json_parser_test.rb
|
246
249
|
- test/lib/vedeu/support/queue_test.rb
|
247
250
|
- test/lib/vedeu/support/terminal_test.rb
|
248
251
|
- test/lib/vedeu/support/translator_test.rb
|
249
252
|
- test/lib/vedeu/support/wordwrap_test.rb
|
250
253
|
- test/lib/vedeu_test.rb
|
254
|
+
- test/stats.sh
|
251
255
|
- test/support/colours.rb
|
252
256
|
- test/support/dummy_command.rb
|
253
257
|
- test/support/dummy_interface.rb
|
@@ -307,29 +311,31 @@ test_files:
|
|
307
311
|
- test/lib/vedeu/models/presentation_test.rb
|
308
312
|
- test/lib/vedeu/models/stream_test.rb
|
309
313
|
- test/lib/vedeu/models/style_test.rb
|
310
|
-
- test/lib/vedeu/output/
|
314
|
+
- test/lib/vedeu/output/clear_interface_test.rb
|
311
315
|
- test/lib/vedeu/output/output_test.rb
|
316
|
+
- test/lib/vedeu/output/render_interface_test.rb
|
312
317
|
- test/lib/vedeu/output/template.rb
|
313
|
-
- test/lib/vedeu/
|
318
|
+
- test/lib/vedeu/parsing/hash_parser_test.rb
|
319
|
+
- test/lib/vedeu/parsing/json_parser_test.rb
|
320
|
+
- test/lib/vedeu/parsing/parser_test.rb
|
321
|
+
- test/lib/vedeu/parsing/text_adaptor_test.rb
|
314
322
|
- test/lib/vedeu/process/process_test.rb
|
315
323
|
- test/lib/vedeu/repository/command_repository_test.rb
|
324
|
+
- test/lib/vedeu/repository/event_repository_test.rb
|
316
325
|
- test/lib/vedeu/repository/interface_repository_test.rb
|
317
326
|
- test/lib/vedeu/repository/repository_test.rb
|
318
327
|
- test/lib/vedeu/repository/storage_test.rb
|
319
328
|
- test/lib/vedeu/support/compositor_test.rb
|
320
329
|
- test/lib/vedeu/support/coordinate_test.rb
|
321
330
|
- test/lib/vedeu/support/esc_test.rb
|
322
|
-
- test/lib/vedeu/support/event_repository_test.rb
|
323
331
|
- test/lib/vedeu/support/exit_test.rb
|
324
332
|
- test/lib/vedeu/support/menu_test.rb
|
325
|
-
- test/lib/vedeu/support/parser_test.rb
|
326
|
-
- test/lib/vedeu/support/parsing/hash_parser_test.rb
|
327
|
-
- test/lib/vedeu/support/parsing/json_parser_test.rb
|
328
333
|
- test/lib/vedeu/support/queue_test.rb
|
329
334
|
- test/lib/vedeu/support/terminal_test.rb
|
330
335
|
- test/lib/vedeu/support/translator_test.rb
|
331
336
|
- test/lib/vedeu/support/wordwrap_test.rb
|
332
337
|
- test/lib/vedeu_test.rb
|
338
|
+
- test/stats.sh
|
333
339
|
- test/support/colours.rb
|
334
340
|
- test/support/dummy_command.rb
|
335
341
|
- test/support/dummy_interface.rb
|