vedeu 0.1.2 → 0.1.3
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/deps.md +23 -28
- data/lib/vedeu.rb +6 -4
- data/lib/vedeu/instrumentation.rb +0 -30
- data/lib/vedeu/models/attributes/interface_collection.rb +4 -2
- data/lib/vedeu/models/colour.rb +16 -30
- data/lib/vedeu/models/composition.rb +3 -8
- data/lib/vedeu/models/interface.rb +10 -21
- data/lib/vedeu/models/line.rb +3 -12
- data/lib/vedeu/models/stream.rb +4 -13
- data/lib/vedeu/models/style.rb +8 -20
- data/lib/vedeu/output/erb_parser.rb +6 -1
- data/lib/vedeu/output/render_interface.rb +9 -7
- data/lib/vedeu/output/view.rb +0 -6
- data/lib/vedeu/support/events.rb +2 -0
- data/lib/vedeu/support/helpers.rb +2 -0
- data/lib/vedeu/support/{persistence.rb → interface_store.rb} +9 -5
- data/lib/vedeu/support/{builder.rb → interface_template.rb} +6 -6
- data/lib/vedeu/support/menu.rb +2 -0
- data/lib/vedeu/support/queue.rb +3 -1
- data/test/lib/vedeu/models/attributes/interface_collection_test.rb +2 -2
- data/test/lib/vedeu/models/colour_test.rb +0 -33
- data/test/lib/vedeu/models/composition_test.rb +18 -38
- data/test/lib/vedeu/models/interface_test.rb +0 -15
- data/test/lib/vedeu/models/line_test.rb +0 -6
- data/test/lib/vedeu/models/stream_test.rb +0 -6
- data/test/lib/vedeu/models/style_test.rb +3 -40
- data/test/lib/vedeu/output/clear_interface_test.rb +2 -2
- data/test/lib/vedeu/output/render_interface_test.rb +2 -2
- data/test/lib/vedeu/support/{persistence_test.rb → interface_store_test.rb} +12 -12
- data/test/lib/vedeu/support/{builder_test.rb → interface_template_test.rb} +7 -7
- data/vedeu.gemspec +1 -2
- metadata +8 -25
- data/lib/vedeu/models/presentation.rb +0 -12
- data/test/lib/vedeu/models/presentation_test.rb +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 831514463a8bea83f3e218ddd59dccc347049e34
|
4
|
+
data.tar.gz: 2e6f495bc8b2bed85942a4335ff3b3bca86b07dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9de37b9db1bc093309b4465f0ca3104b29ff9e2870b3a0eca008a9040e2c3317063ea74f4b67436a32dc952310f7314e05751fade11f0f7532ba18fc7757499f
|
7
|
+
data.tar.gz: 0d681db9caef7bebfbb5fcb01b48f3a4890ef8d62d8594c8efb496d7a7c8189ca1f46a02a3794d5775a4ba56696feedddb0760727900f219467860fa7c7377b3
|
data/deps.md
CHANGED
@@ -7,11 +7,6 @@ Application
|
|
7
7
|
Process
|
8
8
|
Terminal
|
9
9
|
|
10
|
-
Builder
|
11
|
-
Geometry
|
12
|
-
Interface
|
13
|
-
Persistence
|
14
|
-
|
15
10
|
ClearInterface
|
16
11
|
|
17
12
|
Collection
|
@@ -44,16 +39,21 @@ Input
|
|
44
39
|
|
45
40
|
Interface
|
46
41
|
ClearInterface
|
42
|
+
Colour
|
47
43
|
Geometry
|
48
44
|
LineCollection
|
49
|
-
Presentation
|
50
45
|
Queue
|
51
46
|
RenderInterface
|
52
47
|
Style
|
53
48
|
Terminal
|
54
49
|
|
55
50
|
InterfaceCollection
|
56
|
-
|
51
|
+
InterfaceStore
|
52
|
+
|
53
|
+
InterfaceTemplate
|
54
|
+
Geometry
|
55
|
+
Interface
|
56
|
+
InterfaceStore
|
57
57
|
|
58
58
|
JSONParser
|
59
59
|
|
@@ -62,7 +62,7 @@ Launcher
|
|
62
62
|
Configuration
|
63
63
|
|
64
64
|
Line
|
65
|
-
|
65
|
+
Colour
|
66
66
|
StreamCollection
|
67
67
|
Style
|
68
68
|
|
@@ -81,12 +81,9 @@ Parser
|
|
81
81
|
JSONParser
|
82
82
|
MenuParser
|
83
83
|
|
84
|
-
|
84
|
+
InterfaceStore
|
85
85
|
Interface
|
86
86
|
|
87
|
-
Presentation
|
88
|
-
Colour
|
89
|
-
|
90
87
|
Process
|
91
88
|
Parser
|
92
89
|
Queue
|
@@ -97,7 +94,7 @@ RenderInterface
|
|
97
94
|
ClearInterface
|
98
95
|
|
99
96
|
Stream
|
100
|
-
|
97
|
+
Colour
|
101
98
|
Style
|
102
99
|
|
103
100
|
StreamCollection
|
@@ -132,10 +129,10 @@ Menu - orphaned
|
|
132
129
|
Grouped
|
133
130
|
----------------------------------------------------------------------
|
134
131
|
|
135
|
-
|
132
|
+
InterfaceTemplate
|
136
133
|
Interface
|
137
134
|
Geometry
|
138
|
-
|
135
|
+
InterfaceStore
|
139
136
|
|
140
137
|
Launcher
|
141
138
|
Application
|
@@ -148,9 +145,12 @@ Launcher
|
|
148
145
|
Parser
|
149
146
|
Composition
|
150
147
|
InterfaceCollection
|
151
|
-
|
148
|
+
InterfaceStore
|
152
149
|
Interface
|
153
150
|
ClearInterface
|
151
|
+
Colour
|
152
|
+
Esc
|
153
|
+
Translator
|
154
154
|
Geometry
|
155
155
|
Esc
|
156
156
|
Translator
|
@@ -160,27 +160,22 @@ Launcher
|
|
160
160
|
LineCollection
|
161
161
|
Collection
|
162
162
|
Line
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
Translator
|
163
|
+
Colour
|
164
|
+
Esc
|
165
|
+
Translator
|
167
166
|
StreamCollection
|
168
167
|
Collection
|
169
168
|
Stream
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
Translator
|
169
|
+
Colour
|
170
|
+
Esc
|
171
|
+
Translator
|
174
172
|
Style
|
175
173
|
Esc
|
176
174
|
Translator
|
177
175
|
Style
|
178
176
|
Esc
|
179
177
|
Translator
|
180
|
-
|
181
|
-
Colour
|
182
|
-
Esc
|
183
|
-
Translator
|
178
|
+
|
184
179
|
Queue
|
185
180
|
RenderInterface
|
186
181
|
ClearInterface
|
data/lib/vedeu.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'vedeu/instrumentation'
|
2
|
-
require 'vedeu/support/
|
2
|
+
require 'vedeu/support/interface_template'
|
3
3
|
require 'vedeu/support/events'
|
4
|
-
require 'vedeu/support/
|
4
|
+
require 'vedeu/support/interface_store'
|
5
5
|
|
6
6
|
require 'vedeu/support/geometry'
|
7
7
|
require 'vedeu/support/menu'
|
8
8
|
require 'vedeu/output/view'
|
9
9
|
require 'vedeu/launcher'
|
10
10
|
|
11
|
+
# Todo: mutation (events)
|
12
|
+
|
11
13
|
module Vedeu
|
12
14
|
# :nocov:
|
13
15
|
def self.debug?
|
@@ -18,7 +20,7 @@ module Vedeu
|
|
18
20
|
|
19
21
|
module API
|
20
22
|
def interface(name, &block)
|
21
|
-
|
23
|
+
InterfaceTemplate.save(name, &block)
|
22
24
|
end
|
23
25
|
|
24
26
|
def on(name, delay = 0, &block)
|
@@ -32,7 +34,7 @@ module Vedeu
|
|
32
34
|
alias_method :run, :trigger
|
33
35
|
|
34
36
|
def view(name)
|
35
|
-
|
37
|
+
InterfaceStore.query(name)
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'date'
|
2
2
|
require 'logger'
|
3
|
-
# require 'ruby-prof'
|
4
3
|
|
5
4
|
require 'vedeu'
|
6
5
|
|
@@ -30,35 +29,6 @@ module Vedeu
|
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
33
|
-
# class Profile
|
34
|
-
# def self.call(filename = 'profile.html', &block)
|
35
|
-
# new(filename).profile(&block)
|
36
|
-
# end
|
37
|
-
|
38
|
-
# def initialize(filename)
|
39
|
-
# @filename = filename
|
40
|
-
# end
|
41
|
-
|
42
|
-
# def profile(&block)
|
43
|
-
# RubyProf.start
|
44
|
-
|
45
|
-
# yield
|
46
|
-
|
47
|
-
# result = RubyProf.stop.eliminate_methods!([/^Array/, /^Hash/])
|
48
|
-
|
49
|
-
# File.open(filename, 'w') do |file|
|
50
|
-
# RubyProf::CallStackPrinter.new(result).print(file)
|
51
|
-
# RubyProf::GraphPrinter.new(result).print(file)
|
52
|
-
# end
|
53
|
-
# end
|
54
|
-
|
55
|
-
# private
|
56
|
-
|
57
|
-
# def filename
|
58
|
-
# Vedeu.root_path + '/tmp/' + @filename
|
59
|
-
# end
|
60
|
-
# end
|
61
|
-
|
62
32
|
class Trace
|
63
33
|
def self.call(options = {})
|
64
34
|
new(options).trace
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'virtus'
|
2
2
|
|
3
|
-
require 'vedeu/support/
|
3
|
+
require 'vedeu/support/interface_store'
|
4
|
+
|
5
|
+
# Todo: mutation (persistence)
|
4
6
|
|
5
7
|
module Vedeu
|
6
8
|
class InterfaceCollection < Virtus::Attribute
|
@@ -8,7 +10,7 @@ module Vedeu
|
|
8
10
|
return [] if values.nil? || values.empty?
|
9
11
|
|
10
12
|
[values].flatten.map do |value|
|
11
|
-
|
13
|
+
InterfaceStore.update(value.fetch(:name, nil), value)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
data/lib/vedeu/models/colour.rb
CHANGED
@@ -1,46 +1,32 @@
|
|
1
|
-
require 'json'
|
2
1
|
require 'virtus'
|
3
2
|
|
4
3
|
require 'vedeu/support/esc'
|
5
4
|
|
6
5
|
module Vedeu
|
7
|
-
class
|
8
|
-
|
9
|
-
|
10
|
-
attribute :foreground, String, default: ''
|
11
|
-
attribute :background, String, default: ''
|
12
|
-
|
13
|
-
def foreground
|
14
|
-
@fg ||= Esc.foreground_colour(css_foreground)
|
15
|
-
end
|
6
|
+
class Background < Virtus::Attribute
|
7
|
+
def coerce(value)
|
8
|
+
return '' if value.nil? || value.empty?
|
16
9
|
|
17
|
-
|
18
|
-
@bg ||= Esc.background_colour(css_background)
|
10
|
+
Esc.background_colour(value)
|
19
11
|
end
|
12
|
+
end
|
20
13
|
|
21
|
-
|
22
|
-
|
23
|
-
|
14
|
+
class Foreground < Virtus::Attribute
|
15
|
+
def coerce(value)
|
16
|
+
return '' if value.nil? || value.empty?
|
24
17
|
|
25
|
-
|
26
|
-
foreground + background
|
18
|
+
Esc.foreground_colour(value)
|
27
19
|
end
|
20
|
+
end
|
28
21
|
|
29
|
-
|
30
|
-
|
31
|
-
def as_hash
|
32
|
-
{
|
33
|
-
foreground: css_foreground,
|
34
|
-
background: css_background,
|
35
|
-
}
|
36
|
-
end
|
22
|
+
class Colour
|
23
|
+
include Virtus.model
|
37
24
|
|
38
|
-
|
39
|
-
|
40
|
-
end
|
25
|
+
attribute :foreground, Foreground, default: ''
|
26
|
+
attribute :background, Background, default: ''
|
41
27
|
|
42
|
-
def
|
43
|
-
|
28
|
+
def to_s
|
29
|
+
foreground + background
|
44
30
|
end
|
45
31
|
end
|
46
32
|
end
|
@@ -1,8 +1,9 @@
|
|
1
|
-
require 'json'
|
2
1
|
require 'virtus'
|
3
2
|
|
4
3
|
require 'vedeu/models/attributes/interface_collection'
|
5
4
|
|
5
|
+
# Todo: mutation (interfaces)
|
6
|
+
|
6
7
|
module Vedeu
|
7
8
|
class Composition
|
8
9
|
include Virtus.model
|
@@ -14,13 +15,7 @@ module Vedeu
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def enqueue
|
17
|
-
interfaces.map
|
18
|
-
end
|
19
|
-
|
20
|
-
def to_json
|
21
|
-
{
|
22
|
-
interfaces: interfaces
|
23
|
-
}.to_json
|
18
|
+
interfaces.map(&:enqueue)
|
24
19
|
end
|
25
20
|
|
26
21
|
def to_s
|
@@ -1,9 +1,8 @@
|
|
1
|
-
require 'json'
|
2
1
|
require 'virtus'
|
3
2
|
|
4
3
|
require 'vedeu'
|
5
4
|
require 'vedeu/models/attributes/line_collection'
|
6
|
-
require 'vedeu/models/
|
5
|
+
require 'vedeu/models/colour'
|
7
6
|
require 'vedeu/models/style'
|
8
7
|
require 'vedeu/output/clear_interface'
|
9
8
|
require 'vedeu/output/render_interface'
|
@@ -11,15 +10,17 @@ require 'vedeu/support/geometry'
|
|
11
10
|
require 'vedeu/support/queue'
|
12
11
|
require 'vedeu/support/terminal'
|
13
12
|
|
13
|
+
# Todo: mutation (events, current)
|
14
|
+
|
14
15
|
module Vedeu
|
15
16
|
class Interface
|
16
17
|
include Vedeu::Queue
|
17
18
|
include Virtus.model
|
18
|
-
include Presentation
|
19
|
-
include Style
|
20
19
|
|
21
20
|
attribute :name, String
|
22
21
|
attribute :lines, LineCollection
|
22
|
+
attribute :colour, Colour, default: Colour.new
|
23
|
+
attribute :style, Style, default: ''
|
23
24
|
attribute :y, Integer, default: 1
|
24
25
|
attribute :x, Integer, default: 1
|
25
26
|
attribute :width, Integer, default: Terminal.width
|
@@ -27,12 +28,14 @@ module Vedeu
|
|
27
28
|
attribute :current, String, default: ''
|
28
29
|
attribute :cursor, Boolean, default: true
|
29
30
|
attribute :centred, Boolean, default: false
|
30
|
-
attribute :delay, Float, default: 0
|
31
|
+
attribute :delay, Float, default: 0
|
31
32
|
|
32
33
|
def initialize(attributes = {})
|
33
|
-
Vedeu.events.on(:refresh, attributes[:delay]) { refresh }
|
34
|
-
|
35
34
|
super
|
35
|
+
|
36
|
+
Vedeu.events.on(:refresh, self.delay) { refresh }
|
37
|
+
|
38
|
+
self
|
36
39
|
end
|
37
40
|
|
38
41
|
def clear
|
@@ -67,20 +70,6 @@ module Vedeu
|
|
67
70
|
self.current
|
68
71
|
end
|
69
72
|
|
70
|
-
def to_json(*args)
|
71
|
-
{
|
72
|
-
colour: colour,
|
73
|
-
style: style_original,
|
74
|
-
name: name,
|
75
|
-
lines: lines,
|
76
|
-
y: y,
|
77
|
-
x: x,
|
78
|
-
width: width,
|
79
|
-
height: height,
|
80
|
-
cursor: cursor
|
81
|
-
}.to_json
|
82
|
-
end
|
83
|
-
|
84
73
|
def to_s
|
85
74
|
RenderInterface.call(self)
|
86
75
|
end
|
data/lib/vedeu/models/line.rb
CHANGED
@@ -1,26 +1,17 @@
|
|
1
|
-
require 'json'
|
2
1
|
require 'virtus'
|
3
2
|
|
4
3
|
require 'vedeu/models/attributes/stream_collection'
|
5
|
-
require 'vedeu/models/
|
4
|
+
require 'vedeu/models/colour'
|
6
5
|
require 'vedeu/models/style'
|
7
6
|
|
8
7
|
module Vedeu
|
9
8
|
class Line
|
10
9
|
include Virtus.model
|
11
|
-
include Presentation
|
12
|
-
include Style
|
13
10
|
|
11
|
+
attribute :colour, Colour, default: Colour.new
|
14
12
|
attribute :model, Hash
|
15
13
|
attribute :streams, StreamCollection
|
16
|
-
|
17
|
-
def to_json
|
18
|
-
{
|
19
|
-
colour: colour,
|
20
|
-
style: style_original,
|
21
|
-
streams: streams
|
22
|
-
}.to_json
|
23
|
-
end
|
14
|
+
attribute :style, Style, default: ''
|
24
15
|
|
25
16
|
def to_s
|
26
17
|
[colour, style, streams].join
|
data/lib/vedeu/models/stream.rb
CHANGED
@@ -1,24 +1,15 @@
|
|
1
|
-
require 'json'
|
2
1
|
require 'virtus'
|
3
2
|
|
4
|
-
require 'vedeu/models/
|
3
|
+
require 'vedeu/models/colour'
|
5
4
|
require 'vedeu/models/style'
|
6
5
|
|
7
6
|
module Vedeu
|
8
7
|
class Stream
|
9
8
|
include Virtus.model
|
10
|
-
include Presentation
|
11
|
-
include Style
|
12
9
|
|
13
|
-
attribute :
|
14
|
-
|
15
|
-
|
16
|
-
{
|
17
|
-
colour: colour,
|
18
|
-
style: style_original,
|
19
|
-
text: text
|
20
|
-
}.to_json
|
21
|
-
end
|
10
|
+
attribute :colour, Colour, default: Colour.new
|
11
|
+
attribute :style, Style, default: ''
|
12
|
+
attribute :text, String, default: ''
|
22
13
|
|
23
14
|
def to_s(options = {})
|
24
15
|
[colour, style, text].join
|
data/lib/vedeu/models/style.rb
CHANGED
@@ -1,31 +1,19 @@
|
|
1
|
+
require 'virtus'
|
2
|
+
|
1
3
|
require 'vedeu/support/esc'
|
2
4
|
|
3
5
|
module Vedeu
|
4
|
-
|
5
|
-
def
|
6
|
-
|
7
|
-
''
|
8
|
-
|
9
|
-
else
|
10
|
-
@style.map { |s| Esc.string(s) }.join
|
6
|
+
class Style < Virtus::Attribute
|
7
|
+
def coerce(value_or_values)
|
8
|
+
return '' if value_or_values.nil? || value_or_values.empty?
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
def style_original
|
16
|
-
@_original ||= if no_style?
|
17
|
-
''
|
10
|
+
if value_or_values.is_a?(::Array)
|
11
|
+
value_or_values.map { |s| Esc.string(s) }.join
|
18
12
|
|
19
13
|
else
|
20
|
-
|
14
|
+
Esc.string(value_or_values)
|
21
15
|
|
22
16
|
end
|
23
17
|
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def no_style?
|
28
|
-
@style.nil? || @style.empty?
|
29
|
-
end
|
30
18
|
end
|
31
19
|
end
|
@@ -34,18 +34,20 @@ module Vedeu
|
|
34
34
|
if (line_length += stream.text.size) >= width
|
35
35
|
remainder = width - line_length
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
processed_streams << Stream.new(
|
38
|
+
text: truncate(stream.text, remainder),
|
39
|
+
style: stream.style,
|
40
|
+
colour: stream.colour)
|
41
|
+
|
41
42
|
else
|
42
43
|
processed_streams << stream
|
44
|
+
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
Line.new(streams: processed_streams,
|
49
|
+
style: line.style,
|
50
|
+
colour: line.colour)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
data/lib/vedeu/output/view.rb
CHANGED
@@ -38,9 +38,3 @@ module Vedeu
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
|
-
|
42
|
-
# ERBParser: { :interface, :path, :object }
|
43
|
-
# RawParser: { 'interface_name' => String|Array }
|
44
|
-
# { :interface_name => String|Array }
|
45
|
-
# JSONParser: output (string which is converted into a hash)
|
46
|
-
# MenuParser: ['interface_name', Vedeu::Menu instance]
|
data/lib/vedeu/support/events.rb
CHANGED
@@ -1,27 +1,31 @@
|
|
1
1
|
require 'vedeu/models/interface'
|
2
2
|
|
3
|
+
# Todo: mutation (persistence)
|
4
|
+
|
3
5
|
module Vedeu
|
4
6
|
EntityNotFound = Class.new(StandardError)
|
5
7
|
|
6
|
-
module
|
8
|
+
module InterfaceStore
|
7
9
|
extend self
|
8
10
|
|
9
11
|
def update(name, attributes = {})
|
10
12
|
interface = query(name)
|
11
13
|
interface.attributes = attributes
|
12
14
|
interface
|
15
|
+
|
13
16
|
rescue EntityNotFound
|
14
17
|
create(attributes)
|
18
|
+
|
15
19
|
end
|
16
20
|
|
17
21
|
def create(attributes)
|
18
22
|
storage.store(attributes[:name], Interface.new(attributes))
|
19
23
|
end
|
20
24
|
|
21
|
-
def query(
|
22
|
-
storage.select do |name,
|
23
|
-
return
|
24
|
-
end unless
|
25
|
+
def query(interface_name)
|
26
|
+
storage.select do |name, interface|
|
27
|
+
return interface if name == interface_name
|
28
|
+
end unless interface_name.nil? || interface_name.empty?
|
25
29
|
|
26
30
|
fail EntityNotFound, "Interface could not be found."
|
27
31
|
end
|
@@ -1,20 +1,20 @@
|
|
1
1
|
require 'vedeu/support/geometry'
|
2
|
-
require 'vedeu/support/
|
2
|
+
require 'vedeu/support/interface_store'
|
3
3
|
|
4
4
|
module Vedeu
|
5
|
-
class
|
6
|
-
def self.
|
7
|
-
new(name).
|
5
|
+
class InterfaceTemplate
|
6
|
+
def self.save(name, &block)
|
7
|
+
new(name).save(&block)
|
8
8
|
end
|
9
9
|
|
10
10
|
def initialize(name)
|
11
11
|
@name = name.to_s
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
14
|
+
def save(&block)
|
15
15
|
self.instance_eval(&block)
|
16
16
|
|
17
|
-
|
17
|
+
InterfaceStore.create(attributes)
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
data/lib/vedeu/support/menu.rb
CHANGED
data/lib/vedeu/support/queue.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'vedeu/models/attributes/interface_collection'
|
3
2
|
require 'vedeu/models/composition'
|
3
|
+
require 'vedeu/models/attributes/interface_collection'
|
4
4
|
|
5
5
|
module Vedeu
|
6
6
|
describe InterfaceCollection do
|
7
7
|
describe '#coerce' do
|
8
|
-
before {
|
8
|
+
before { InterfaceStore.reset }
|
9
9
|
|
10
10
|
it 'returns an empty collection when there are no interfaces' do
|
11
11
|
composition = Composition.new
|
@@ -27,39 +27,6 @@ module Vedeu
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
describe '#to_json' do
|
31
|
-
it 'returns the model as JSON' do
|
32
|
-
Colour.new({
|
33
|
-
foreground: '#ff0000',
|
34
|
-
background: '#000000'
|
35
|
-
}).to_json.must_equal(
|
36
|
-
"{\"foreground\":\"#ff0000\",\"background\":\"#000000\"}"
|
37
|
-
)
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'returns an escape sequence when the foreground is missing' do
|
41
|
-
Colour.new({
|
42
|
-
background: '#000000'
|
43
|
-
}).to_json.must_equal(
|
44
|
-
"{\"foreground\":\"\",\"background\":\"#000000\"}"
|
45
|
-
)
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'returns an escape sequence when the background is missing' do
|
49
|
-
Colour.new({
|
50
|
-
foreground: '#ff0000',
|
51
|
-
}).to_json.must_equal(
|
52
|
-
"{\"foreground\":\"#ff0000\",\"background\":\"\"}"
|
53
|
-
)
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'returns an empty string when both are missing' do
|
57
|
-
Colour.new.to_json.must_equal(
|
58
|
-
"{\"foreground\":\"\",\"background\":\"\"}"
|
59
|
-
)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
30
|
describe '#to_s' do
|
64
31
|
it 'returns an escape sequence' do
|
65
32
|
Colour.new({
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'vedeu/models/composition'
|
3
|
-
require 'vedeu/support/
|
3
|
+
require 'vedeu/support/interface_store'
|
4
4
|
|
5
5
|
module Vedeu
|
6
6
|
describe Composition do
|
@@ -31,10 +31,10 @@ module Vedeu
|
|
31
31
|
}
|
32
32
|
|
33
33
|
Composition.enqueue(attributes)
|
34
|
-
|
34
|
+
InterfaceStore
|
35
35
|
.query('Composition.enqueue_1').dequeue
|
36
36
|
.must_match(/bd459118e6175689e4394e242debc2ae/)
|
37
|
-
|
37
|
+
InterfaceStore
|
38
38
|
.query('Composition.enqueue_2').dequeue
|
39
39
|
.must_match(/837acb2cb2ea3ef359257851142a7830/)
|
40
40
|
end
|
@@ -56,29 +56,9 @@ module Vedeu
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
describe '#to_json' do
|
60
|
-
it 'returns the model as JSON' do
|
61
|
-
attributes = {
|
62
|
-
interfaces: [
|
63
|
-
{
|
64
|
-
name: 'Composition#to_json',
|
65
|
-
width: 5,
|
66
|
-
height: 5,
|
67
|
-
colour: {
|
68
|
-
foreground: '#ffff33',
|
69
|
-
background: '#ffff77'
|
70
|
-
}
|
71
|
-
}
|
72
|
-
]
|
73
|
-
}
|
74
|
-
|
75
|
-
Composition.new(attributes).to_json.must_equal("{\"interfaces\":[{\"colour\":{\"foreground\":\"\#ffff33\",\"background\":\"\#ffff77\"},\"style\":\"\",\"name\":\"Composition#to_json\",\"lines\":[],\"y\":1,\"x\":1,\"width\":5,\"height\":5,\"cursor\":true}]}")
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
59
|
describe '#to_s' do
|
80
60
|
it 'returns the stringified content for a single interface, single line, single stream' do
|
81
|
-
|
61
|
+
InterfaceStore.create({ name: 'int1_lin1_str1', y: 3, x: 3, width: 15, height: 3 })
|
82
62
|
json = File.read('test/support/json/int1_lin1_str1.json')
|
83
63
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
84
64
|
|
@@ -91,7 +71,7 @@ module Vedeu
|
|
91
71
|
end
|
92
72
|
|
93
73
|
it 'returns the stringified content for a single interface, single line, multiple streams' do
|
94
|
-
|
74
|
+
InterfaceStore.create({ name: 'int1_lin1_str3', y: 3, x: 3, width: 30, height: 3 })
|
95
75
|
json = File.read('test/support/json/int1_lin1_str3.json')
|
96
76
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
97
77
|
|
@@ -104,7 +84,7 @@ module Vedeu
|
|
104
84
|
end
|
105
85
|
|
106
86
|
it 'returns the stringified content for a single interface, multiple lines, single stream' do
|
107
|
-
|
87
|
+
InterfaceStore.create({ name: 'int1_lin2_str1', y: 3, x: 3, width: 15, height: 3 })
|
108
88
|
json = File.read('test/support/json/int1_lin2_str1.json')
|
109
89
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
110
90
|
|
@@ -118,7 +98,7 @@ module Vedeu
|
|
118
98
|
end
|
119
99
|
|
120
100
|
it 'returns the stringified content for a single interface, multiple lines, multiple streams' do
|
121
|
-
|
101
|
+
InterfaceStore.create({ name: 'int1_lin2_str3', y: 3, x: 3, width: 30, height: 3 })
|
122
102
|
json = File.read('test/support/json/int1_lin2_str3.json')
|
123
103
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
124
104
|
|
@@ -134,7 +114,7 @@ module Vedeu
|
|
134
114
|
it 'returns the stringified content for a single interface, multiple lines, multiple streams, streams contain styles' do
|
135
115
|
json = File.read('test/support/json/int1_lin2_str3_styles.json')
|
136
116
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
137
|
-
|
117
|
+
InterfaceStore.create({ name: 'int1_lin2_str3_styles', y: 3, x: 3, width: 30, height: 3 })
|
138
118
|
|
139
119
|
Composition.new(attributes).to_s.must_equal(
|
140
120
|
"\e[3;3H \e[3;3H" \
|
@@ -145,8 +125,8 @@ module Vedeu
|
|
145
125
|
end
|
146
126
|
|
147
127
|
it 'returns the stringified content for multiple interfaces, single line, single stream' do
|
148
|
-
|
149
|
-
|
128
|
+
InterfaceStore.create({ name: 'int2_lin1_str1_1', y: 3, x: 3, width: 15, height: 3 })
|
129
|
+
InterfaceStore.create({ name: 'int2_lin1_str1_2', y: 6, x: 6, width: 15, height: 3 })
|
150
130
|
json = File.read('test/support/json/int2_lin1_str1.json')
|
151
131
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
152
132
|
|
@@ -163,8 +143,8 @@ module Vedeu
|
|
163
143
|
end
|
164
144
|
|
165
145
|
it 'returns the stringified content for multiple interfaces, single line, multiple streams' do
|
166
|
-
|
167
|
-
|
146
|
+
InterfaceStore.create({ name: 'int2_lin1_str3_1', y: 3, x: 3, width: 30, height: 3 })
|
147
|
+
InterfaceStore.create({ name: 'int2_lin1_str3_2', y: 6, x: 6, width: 30, height: 3 })
|
168
148
|
json = File.read('test/support/json/int2_lin1_str3.json')
|
169
149
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
170
150
|
|
@@ -181,8 +161,8 @@ module Vedeu
|
|
181
161
|
end
|
182
162
|
|
183
163
|
it 'returns the stringified content for multiple interfaces, multiple lines, single stream' do
|
184
|
-
|
185
|
-
|
164
|
+
InterfaceStore.create({ name: 'int2_lin2_str1_1', y: 3, x: 3, width: 15, height: 3 })
|
165
|
+
InterfaceStore.create({ name: 'int2_lin2_str1_2', y: 6, x: 6, width: 15, height: 3 })
|
186
166
|
json = File.read('test/support/json/int2_lin2_str1.json')
|
187
167
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
188
168
|
|
@@ -201,8 +181,8 @@ module Vedeu
|
|
201
181
|
end
|
202
182
|
|
203
183
|
it 'returns the stringified content for multiple interfaces, multiple lines, multiple streams' do
|
204
|
-
|
205
|
-
|
184
|
+
InterfaceStore.create({ name: 'int2_lin2_str3_1', y: 3, x: 3, width: 30, height: 3 })
|
185
|
+
InterfaceStore.create({ name: 'int2_lin2_str3_2', y: 6, x: 6, width: 30, height: 3 })
|
206
186
|
json = File.read('test/support/json/int2_lin2_str3.json')
|
207
187
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
208
188
|
|
@@ -221,8 +201,8 @@ module Vedeu
|
|
221
201
|
end
|
222
202
|
|
223
203
|
it 'returns the stringified content for multiple interfaces, multiple lines, multiple streams, streams contain styles' do
|
224
|
-
|
225
|
-
|
204
|
+
InterfaceStore.create({ name: 'int2_lin2_str3_styles_1', y: 3, x: 3, width: 30, height: 3 })
|
205
|
+
InterfaceStore.create({ name: 'int2_lin2_str3_styles_2', y: 6, x: 6, width: 30, height: 3 })
|
226
206
|
json = File.read('test/support/json/int2_lin2_str3_styles.json')
|
227
207
|
attributes = JSON.load(json, nil, symbolize_names: true)
|
228
208
|
|
@@ -212,20 +212,5 @@ module Vedeu
|
|
212
212
|
)
|
213
213
|
end
|
214
214
|
end
|
215
|
-
|
216
|
-
describe '#to_json' do
|
217
|
-
it 'returns an String' do
|
218
|
-
Interface.new({
|
219
|
-
name: '#to_json',
|
220
|
-
lines: [],
|
221
|
-
colour: {
|
222
|
-
foreground: '#ff0000',
|
223
|
-
background: '#000000'
|
224
|
-
},
|
225
|
-
width: 3,
|
226
|
-
height: 3
|
227
|
-
}).to_json.must_equal("{\"colour\":{\"foreground\":\"#ff0000\",\"background\":\"#000000\"},\"style\":\"\",\"name\":\"#to_json\",\"lines\":[],\"y\":1,\"x\":1,\"width\":3,\"height\":3,\"cursor\":true}")
|
228
|
-
end
|
229
|
-
end
|
230
215
|
end
|
231
216
|
end
|
@@ -27,12 +27,6 @@ module Vedeu
|
|
27
27
|
line.streams.must_equal([])
|
28
28
|
end
|
29
29
|
|
30
|
-
describe '#to_json' do
|
31
|
-
it 'returns a String' do
|
32
|
-
line.to_json.must_equal("{\"colour\":{\"foreground\":\"#ff0000\",\"background\":\"#000000\"},\"style\":[\"normal\"],\"streams\":[]}")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
30
|
describe '#to_s' do
|
37
31
|
it 'returns a String' do
|
38
32
|
line.to_s.must_equal(
|
@@ -35,11 +35,5 @@ module Vedeu
|
|
35
35
|
)
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
39
|
-
describe '#to_json' do
|
40
|
-
it 'returns a String' do
|
41
|
-
stream.to_json.must_equal("{\"colour\":{\"foreground\":\"#ff0000\",\"background\":\"#000000\"},\"style\":[\"normal\"],\"text\":\"Some text\"}")
|
42
|
-
end
|
43
|
-
end
|
44
38
|
end
|
45
39
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'vedeu/models/presentation'
|
3
2
|
require 'vedeu/models/style'
|
4
3
|
|
5
4
|
module Vedeu
|
6
5
|
class TestStyle
|
7
|
-
include
|
8
|
-
|
6
|
+
include Virtus.model
|
7
|
+
|
8
|
+
attribute :style, Style
|
9
9
|
end
|
10
10
|
|
11
11
|
describe Style do
|
@@ -45,42 +45,5 @@ module Vedeu
|
|
45
45
|
model.style.must_equal('')
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
49
|
-
describe '#style_original' do
|
50
|
-
it 'returns an escape sequence for a single style' do
|
51
|
-
model = TestStyle.new(style: 'normal')
|
52
|
-
model.style_original.must_equal(['normal'])
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'returns an escape sequence for multiple styles' do
|
56
|
-
model = TestStyle.new(style: ['normal', 'underline'])
|
57
|
-
model.style_original.must_equal(['normal', 'underline'])
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'returns an empty string for an unknown style' do
|
61
|
-
model = TestStyle.new(style: 'unknown')
|
62
|
-
model.style_original.must_equal(['unknown'])
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'has a style attribute' do
|
66
|
-
model = TestStyle.new(style: ['normal'])
|
67
|
-
model.style_original.must_equal(['normal'])
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'returns an empty string for empty or nil' do
|
71
|
-
model = TestStyle.new(style: '')
|
72
|
-
model.style_original.must_equal([''])
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'returns an empty string for empty or nil' do
|
76
|
-
model = TestStyle.new(style: nil)
|
77
|
-
model.style_original.must_equal('')
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'returns an empty string for empty or nil' do
|
81
|
-
model = TestStyle.new(style: [])
|
82
|
-
model.style_original.must_equal('')
|
83
|
-
end
|
84
|
-
end
|
85
48
|
end
|
86
49
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'vedeu/output/clear_interface'
|
3
3
|
require 'vedeu/models/interface'
|
4
|
-
require 'vedeu/support/
|
4
|
+
require 'vedeu/support/interface_store'
|
5
5
|
|
6
6
|
module Vedeu
|
7
7
|
describe ClearInterface do
|
8
|
-
before {
|
8
|
+
before { InterfaceStore.reset }
|
9
9
|
|
10
10
|
describe '.call' do
|
11
11
|
it 'returns the escape sequence to clear the whole interface' do
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'vedeu/output/render_interface'
|
3
3
|
require 'vedeu/models/interface'
|
4
|
-
require 'vedeu/support/
|
4
|
+
require 'vedeu/support/interface_store'
|
5
5
|
|
6
6
|
module Vedeu
|
7
7
|
describe RenderInterface do
|
8
|
-
before {
|
8
|
+
before { InterfaceStore.reset }
|
9
9
|
|
10
10
|
describe '.call' do
|
11
11
|
it 'returns the content for the interface' do
|
@@ -1,50 +1,50 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'vedeu/support/
|
2
|
+
require 'vedeu/support/interface_store'
|
3
3
|
|
4
4
|
module Vedeu
|
5
|
-
describe
|
6
|
-
before {
|
5
|
+
describe InterfaceStore do
|
6
|
+
before { InterfaceStore.reset }
|
7
7
|
|
8
8
|
describe '.update' do
|
9
9
|
it 'returns an Interface' do
|
10
|
-
|
10
|
+
InterfaceStore.update('dummy', { name: 'dumber' })
|
11
11
|
.must_be_instance_of(Interface)
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'updates and returns the existing interface when the interface exists' do
|
15
|
-
|
15
|
+
InterfaceStore.update('dummy', { name: 'dumber' }).name
|
16
16
|
.must_equal('dumber')
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'returns a new interface when the interface does not exist' do
|
20
|
-
|
20
|
+
InterfaceStore.update('dummy', { name: 'dumber' }).name
|
21
21
|
.must_equal('dumber')
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
describe '#create' do
|
26
26
|
it 'creates and returns the stored record' do
|
27
|
-
|
27
|
+
InterfaceStore.create({ name: 'dummy' })
|
28
28
|
.must_be_instance_of(Interface)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
describe '#query' do
|
33
33
|
it 'returns the record when found' do
|
34
|
-
|
34
|
+
InterfaceStore.create({ name: 'hydrogen' })
|
35
35
|
|
36
|
-
|
36
|
+
InterfaceStore.query('hydrogen').name.must_equal('hydrogen')
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'raises an exception when the record cannot be found' do
|
40
|
-
proc {
|
40
|
+
proc { InterfaceStore.query('dummy') }.must_raise(EntityNotFound)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
describe '#reset' do
|
45
45
|
it 'deletes all records stored' do
|
46
|
-
|
47
|
-
|
46
|
+
InterfaceStore.create({ name: 'dumb' })
|
47
|
+
InterfaceStore.reset.must_equal({})
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'vedeu/support/
|
2
|
+
require 'vedeu/support/interface_template'
|
3
3
|
|
4
4
|
module Vedeu
|
5
|
-
describe
|
5
|
+
describe InterfaceTemplate do
|
6
6
|
it 'creates and stores a new interface' do
|
7
|
-
interface =
|
7
|
+
interface = InterfaceTemplate.save('widget') do
|
8
8
|
colour foreground: '#ff0000', background: '#5f0000'
|
9
9
|
cursor false
|
10
10
|
width 10
|
@@ -16,7 +16,7 @@ module Vedeu
|
|
16
16
|
|
17
17
|
it 'overrides x and y when centred is true' do
|
18
18
|
IO.console.stub :winsize, [10, 40] do
|
19
|
-
interface =
|
19
|
+
interface = InterfaceTemplate.save('widget') do
|
20
20
|
colour foreground: '#ff0000', background: '#5f0000'
|
21
21
|
cursor false
|
22
22
|
centred true
|
@@ -31,7 +31,7 @@ module Vedeu
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'uses x and y when centred is false' do
|
34
|
-
interface =
|
34
|
+
interface = InterfaceTemplate.save('widget') do
|
35
35
|
colour foreground: '#ff0000', background: '#5f0000'
|
36
36
|
cursor false
|
37
37
|
centred false
|
@@ -46,14 +46,14 @@ module Vedeu
|
|
46
46
|
|
47
47
|
it 'allows interfaces to share behaviour' do
|
48
48
|
IO.console.stub :winsize, [10, 40] do
|
49
|
-
main =
|
49
|
+
main = InterfaceTemplate.save('main') do
|
50
50
|
colour foreground: '#ff0000', background: '#000000'
|
51
51
|
cursor false
|
52
52
|
centred true
|
53
53
|
width 10
|
54
54
|
height 2
|
55
55
|
end
|
56
|
-
status =
|
56
|
+
status = InterfaceTemplate.save('status') do
|
57
57
|
colour foreground: 'aadd00', background: '#4040cc'
|
58
58
|
cursor true
|
59
59
|
centred true
|
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.1.
|
7
|
+
spec.version = '0.1.3'
|
8
8
|
spec.authors = ['Gavin Laking']
|
9
9
|
spec.email = ['gavinlaking@gmail.com']
|
10
10
|
spec.summary = %q{A terminal case of wonderland.}
|
@@ -24,7 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'mocha', '1.1.0'
|
25
25
|
spec.add_development_dependency 'pry', '0.10.0'
|
26
26
|
spec.add_development_dependency 'rake', '10.3.2'
|
27
|
-
spec.add_development_dependency 'ruby-prof', '0.15.1'
|
28
27
|
spec.add_development_dependency 'simplecov', '0.9.0'
|
29
28
|
|
30
29
|
spec.add_dependency 'virtus', '1.0.3'
|
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.1.
|
4
|
+
version: 0.1.3
|
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-08-
|
11
|
+
date: 2014-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,20 +122,6 @@ dependencies:
|
|
122
122
|
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 10.3.2
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: ruby-prof
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - '='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 0.15.1
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - '='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 0.15.1
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: simplecov
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -197,7 +183,6 @@ files:
|
|
197
183
|
- lib/vedeu/models/composition.rb
|
198
184
|
- lib/vedeu/models/interface.rb
|
199
185
|
- lib/vedeu/models/line.rb
|
200
|
-
- lib/vedeu/models/presentation.rb
|
201
186
|
- lib/vedeu/models/stream.rb
|
202
187
|
- lib/vedeu/models/style.rb
|
203
188
|
- lib/vedeu/output/clear_interface.rb
|
@@ -208,14 +193,14 @@ files:
|
|
208
193
|
- lib/vedeu/output/render_interface.rb
|
209
194
|
- lib/vedeu/output/text_adaptor.rb
|
210
195
|
- lib/vedeu/output/view.rb
|
211
|
-
- lib/vedeu/support/builder.rb
|
212
196
|
- lib/vedeu/support/esc.rb
|
213
197
|
- lib/vedeu/support/events.rb
|
214
198
|
- lib/vedeu/support/geometry.rb
|
215
199
|
- lib/vedeu/support/helpers.rb
|
216
200
|
- lib/vedeu/support/input.rb
|
201
|
+
- lib/vedeu/support/interface_store.rb
|
202
|
+
- lib/vedeu/support/interface_template.rb
|
217
203
|
- lib/vedeu/support/menu.rb
|
218
|
-
- lib/vedeu/support/persistence.rb
|
219
204
|
- lib/vedeu/support/queue.rb
|
220
205
|
- lib/vedeu/support/terminal.rb
|
221
206
|
- lib/vedeu/support/translator.rb
|
@@ -232,7 +217,6 @@ files:
|
|
232
217
|
- test/lib/vedeu/models/composition_test.rb
|
233
218
|
- test/lib/vedeu/models/interface_test.rb
|
234
219
|
- test/lib/vedeu/models/line_test.rb
|
235
|
-
- test/lib/vedeu/models/presentation_test.rb
|
236
220
|
- test/lib/vedeu/models/stream_test.rb
|
237
221
|
- test/lib/vedeu/models/style_test.rb
|
238
222
|
- test/lib/vedeu/output/clear_interface_test.rb
|
@@ -243,14 +227,14 @@ files:
|
|
243
227
|
- test/lib/vedeu/output/render_interface_test.rb
|
244
228
|
- test/lib/vedeu/output/text_adaptor_test.rb
|
245
229
|
- test/lib/vedeu/output/view_test.rb
|
246
|
-
- test/lib/vedeu/support/builder_test.rb
|
247
230
|
- test/lib/vedeu/support/esc_test.rb
|
248
231
|
- test/lib/vedeu/support/events_test.rb
|
249
232
|
- test/lib/vedeu/support/geometry_test.rb
|
250
233
|
- test/lib/vedeu/support/helpers_test.rb
|
251
234
|
- test/lib/vedeu/support/input_test.rb
|
235
|
+
- test/lib/vedeu/support/interface_store_test.rb
|
236
|
+
- test/lib/vedeu/support/interface_template_test.rb
|
252
237
|
- test/lib/vedeu/support/menu_test.rb
|
253
|
-
- test/lib/vedeu/support/persistence_test.rb
|
254
238
|
- test/lib/vedeu/support/queue_test.rb
|
255
239
|
- test/lib/vedeu/support/terminal_test.rb
|
256
240
|
- test/lib/vedeu/support/translator_test.rb
|
@@ -312,7 +296,6 @@ test_files:
|
|
312
296
|
- test/lib/vedeu/models/composition_test.rb
|
313
297
|
- test/lib/vedeu/models/interface_test.rb
|
314
298
|
- test/lib/vedeu/models/line_test.rb
|
315
|
-
- test/lib/vedeu/models/presentation_test.rb
|
316
299
|
- test/lib/vedeu/models/stream_test.rb
|
317
300
|
- test/lib/vedeu/models/style_test.rb
|
318
301
|
- test/lib/vedeu/output/clear_interface_test.rb
|
@@ -323,14 +306,14 @@ test_files:
|
|
323
306
|
- test/lib/vedeu/output/render_interface_test.rb
|
324
307
|
- test/lib/vedeu/output/text_adaptor_test.rb
|
325
308
|
- test/lib/vedeu/output/view_test.rb
|
326
|
-
- test/lib/vedeu/support/builder_test.rb
|
327
309
|
- test/lib/vedeu/support/esc_test.rb
|
328
310
|
- test/lib/vedeu/support/events_test.rb
|
329
311
|
- test/lib/vedeu/support/geometry_test.rb
|
330
312
|
- test/lib/vedeu/support/helpers_test.rb
|
331
313
|
- test/lib/vedeu/support/input_test.rb
|
314
|
+
- test/lib/vedeu/support/interface_store_test.rb
|
315
|
+
- test/lib/vedeu/support/interface_template_test.rb
|
332
316
|
- test/lib/vedeu/support/menu_test.rb
|
333
|
-
- test/lib/vedeu/support/persistence_test.rb
|
334
317
|
- test/lib/vedeu/support/queue_test.rb
|
335
318
|
- test/lib/vedeu/support/terminal_test.rb
|
336
319
|
- test/lib/vedeu/support/translator_test.rb
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'vedeu/models/presentation'
|
3
|
-
|
4
|
-
module Vedeu
|
5
|
-
class TestPresentation
|
6
|
-
include Presentation
|
7
|
-
end
|
8
|
-
|
9
|
-
describe Presentation do
|
10
|
-
let(:presentation) {
|
11
|
-
TestPresentation.new({
|
12
|
-
colour: {
|
13
|
-
foreground: '#ff0000',
|
14
|
-
background: '#333333'
|
15
|
-
},
|
16
|
-
style: ['bold', 'underline']
|
17
|
-
})
|
18
|
-
}
|
19
|
-
|
20
|
-
describe '#colour' do
|
21
|
-
it 'returns a Colour instance' do
|
22
|
-
presentation.colour.must_be_instance_of(Colour)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '#style' do
|
27
|
-
it 'has a style attribute' do
|
28
|
-
presentation.style.must_equal(['bold', 'underline'])
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|