vedeu 0.0.36 → 0.0.37
Sign up to get free protection for your applications and to get access to all the features.
- 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
|