vedeu 0.8.13 → 0.8.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/lib/vedeu/buffers/empty.rb +1 -2
- data/lib/vedeu/buffers/view.rb +13 -26
- data/lib/vedeu/cells/border.rb +0 -1
- data/lib/vedeu/cells/empty.rb +1 -4
- data/lib/vedeu/coercers/editor_lines.rb +1 -1
- data/lib/vedeu/coercers/page.rb +2 -2
- data/lib/vedeu/coercers/position.rb +2 -7
- data/lib/vedeu/coercers/row.rb +1 -1
- data/lib/vedeu/coercers/style.rb +1 -1
- data/lib/vedeu/common.rb +8 -0
- data/lib/vedeu/configuration/api.rb +2 -2
- data/lib/vedeu/configuration/configuration.rb +58 -3
- data/lib/vedeu/editor/delete.rb +1 -1
- data/lib/vedeu/interfaces/dsl.rb +1 -1
- data/lib/vedeu/logging/debug.rb +1 -1
- data/lib/vedeu/logging/log.rb +5 -54
- data/lib/vedeu/presentation/colour.rb +9 -0
- data/lib/vedeu/presentation/position.rb +10 -0
- data/lib/vedeu/presentation/presentation.rb +0 -28
- data/lib/vedeu/presentation/styles.rb +11 -0
- data/lib/vedeu/renderers/all.rb +3 -2
- data/lib/vedeu/renderers/{file.rb → support/file.rb} +0 -0
- data/lib/vedeu/renderers/{options.rb → support/options.rb} +0 -0
- data/lib/vedeu/repositories/collection.rb +1 -0
- data/lib/vedeu/repositories/repository.rb +1 -1
- data/lib/vedeu/repositories/store.rb +1 -1
- data/lib/vedeu/version.rb +1 -1
- data/lib/vedeu/views/chars.rb +39 -33
- data/lib/vedeu/views/lines.rb +31 -25
- data/lib/vedeu/views/streams.rb +35 -29
- data/test/lib/vedeu/cells/empty_test.rb +6 -4
- data/test/lib/vedeu/common_test.rb +16 -0
- data/test/lib/vedeu/configuration/api_test.rb +2 -11
- data/test/lib/vedeu/configuration/configuration_test.rb +56 -28
- data/test/lib/vedeu/renderers/{file_test.rb → support/file_test.rb} +0 -0
- data/test/lib/vedeu/renderers/{options_test.rb → support/options_test.rb} +0 -0
- data/test/lib/vedeu/repositories/repository_test.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34e3c347f479d6c178f4aacae2dd5cee4018d555
|
4
|
+
data.tar.gz: 92cb71dfedee65fb74c2808c843bea8222802808
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 338a4fd459b7f6d89e56e3247921aa215069b5bf30b947084fbd55c5aec2a42d44cecaf6d8a4a5ca7e38fd0084b5908239bffe9a760c444476ff336e1c51ef16
|
7
|
+
data.tar.gz: a84a360d6c8f4153ca61aa89ea819178d866d9e9d4b306b23da5a9da57bba8146840155b24626a24108bd1a3a6addcdde33a93c0b8582379933a1462ab7f83a2
|
data/.rubocop.yml
CHANGED
data/lib/vedeu/buffers/empty.rb
CHANGED
@@ -57,8 +57,7 @@ module Vedeu
|
|
57
57
|
def empty
|
58
58
|
Array.new(height) do |h|
|
59
59
|
Array.new(width) do |w|
|
60
|
-
|
61
|
-
Vedeu::Cells::Empty.new(name: name, position: position)
|
60
|
+
Vedeu::Cells::Empty.new(name: name, position: [(y + h), (x + w)])
|
62
61
|
end
|
63
62
|
end
|
64
63
|
end
|
data/lib/vedeu/buffers/view.rb
CHANGED
@@ -48,7 +48,9 @@ module Vedeu
|
|
48
48
|
# Vedeu::Cells::Char]
|
49
49
|
# @return [Vedeu::Buffers::View]
|
50
50
|
def update(value_or_values)
|
51
|
-
Array(value_or_values).flatten.each
|
51
|
+
Array(value_or_values).flatten.each do |value|
|
52
|
+
write(value) if positionable?(value)
|
53
|
+
end
|
52
54
|
|
53
55
|
self
|
54
56
|
end
|
@@ -61,6 +63,12 @@ module Vedeu
|
|
61
63
|
|
62
64
|
private
|
63
65
|
|
66
|
+
# @param value [void]
|
67
|
+
# @return [Fixnum]
|
68
|
+
def column(value)
|
69
|
+
Vedeu::Point.coerce(value: value.position.x, min: bx, max: bxn).value
|
70
|
+
end
|
71
|
+
|
64
72
|
# @return [Array<Vedeu::Cells::Empty>]
|
65
73
|
def current
|
66
74
|
@current ||= Vedeu::Buffers::Empty.new(height: bordered_height,
|
@@ -82,31 +90,10 @@ module Vedeu
|
|
82
90
|
@_geometry ||= Vedeu.geometries.by_name(name)
|
83
91
|
end
|
84
92
|
|
85
|
-
# Returns a boolean indicating the value has a position
|
86
|
-
# attribute and is within the terminal boundary.
|
87
|
-
#
|
88
93
|
# @param value [void]
|
89
|
-
# @return [
|
90
|
-
def
|
91
|
-
|
92
|
-
valid_y?(value.position.y) &&
|
93
|
-
valid_x?(value.position.x)
|
94
|
-
end
|
95
|
-
|
96
|
-
# Returns a boolean indicating whether the x position of the
|
97
|
-
# value object is valid for this geometry.
|
98
|
-
#
|
99
|
-
# @return [Boolean]
|
100
|
-
def valid_x?(x)
|
101
|
-
Vedeu::Point.valid?(value: x, min: bx, max: bxn)
|
102
|
-
end
|
103
|
-
|
104
|
-
# Returns a boolean indicating whether the y position of the
|
105
|
-
# value object is valid for this geometry.
|
106
|
-
#
|
107
|
-
# @return [Boolean]
|
108
|
-
def valid_y?(y)
|
109
|
-
Vedeu::Point.valid?(value: y, min: by, max: byn)
|
94
|
+
# @return [Fixnum]
|
95
|
+
def row(value)
|
96
|
+
Vedeu::Point.coerce(value: value.position.y, min: by, max: byn).value
|
110
97
|
end
|
111
98
|
|
112
99
|
# Write the value into the respective cell as defined by the
|
@@ -115,7 +102,7 @@ module Vedeu
|
|
115
102
|
# @param value [void]
|
116
103
|
# @return [NilClass|void]
|
117
104
|
def write(value)
|
118
|
-
current[value
|
105
|
+
current[row(value)][column(value)] = value
|
119
106
|
end
|
120
107
|
|
121
108
|
end # View
|
data/lib/vedeu/cells/border.rb
CHANGED
data/lib/vedeu/cells/empty.rb
CHANGED
@@ -38,10 +38,7 @@ module Vedeu
|
|
38
38
|
# @param other [void]
|
39
39
|
# @return [Boolean]
|
40
40
|
def eql?(other)
|
41
|
-
self.class.equal?(other.class) &&
|
42
|
-
position == other.position &&
|
43
|
-
value == other.value &&
|
44
|
-
colour == other.colour
|
41
|
+
self.class.equal?(other.class) && position == other.position
|
45
42
|
end
|
46
43
|
alias == eql?
|
47
44
|
|
data/lib/vedeu/coercers/page.rb
CHANGED
@@ -20,10 +20,10 @@ module Vedeu
|
|
20
20
|
elsif value.is_a?(Vedeu::Models::Row)
|
21
21
|
klass.new([value])
|
22
22
|
|
23
|
-
elsif
|
23
|
+
elsif array?(value) && value.empty?
|
24
24
|
klass.new([Vedeu::Models::Row.coerce(value)])
|
25
25
|
|
26
|
-
elsif
|
26
|
+
elsif array?(value) || value.is_a?(Vedeu::Buffers::View)
|
27
27
|
values = value.map { |v| Vedeu::Models::Row.coerce(v) }
|
28
28
|
|
29
29
|
klass.new(values)
|
@@ -20,7 +20,7 @@ module Vedeu
|
|
20
20
|
elsif tuple?
|
21
21
|
klass.new(*value)
|
22
22
|
|
23
|
-
elsif hash?
|
23
|
+
elsif hash?(value)
|
24
24
|
klass.new(value.fetch(:y, 1), value.fetch(:x, 1))
|
25
25
|
|
26
26
|
elsif numeric?(value)
|
@@ -34,11 +34,6 @@ module Vedeu
|
|
34
34
|
|
35
35
|
private
|
36
36
|
|
37
|
-
# @return [Boolean]
|
38
|
-
def hash?
|
39
|
-
value.is_a?(Hash)
|
40
|
-
end
|
41
|
-
|
42
37
|
# @return [Class]
|
43
38
|
def klass
|
44
39
|
Vedeu::Geometries::Position
|
@@ -47,7 +42,7 @@ module Vedeu
|
|
47
42
|
# @macro raise_fatal
|
48
43
|
# @return [Boolean]
|
49
44
|
def tuple?
|
50
|
-
return false unless
|
45
|
+
return false unless array?(value)
|
51
46
|
return true if value.size == 2
|
52
47
|
|
53
48
|
raise Vedeu::Error::Fatal,
|
data/lib/vedeu/coercers/row.rb
CHANGED
data/lib/vedeu/coercers/style.rb
CHANGED
data/lib/vedeu/common.rb
CHANGED
@@ -17,6 +17,14 @@ module Vedeu
|
|
17
17
|
!present?(variable)
|
18
18
|
end
|
19
19
|
|
20
|
+
# Returns a boolean indicating whether the value is an Array.
|
21
|
+
#
|
22
|
+
# @param value [Array|void]
|
23
|
+
# @return [Boolean]
|
24
|
+
def array?(value)
|
25
|
+
value.is_a?(Array)
|
26
|
+
end
|
27
|
+
|
20
28
|
# Returns a boolean indicating the value was a boolean.
|
21
29
|
#
|
22
30
|
# @param value [void]
|
@@ -243,7 +243,7 @@ module Vedeu
|
|
243
243
|
|
244
244
|
# Log specific message types except those given. A complete list
|
245
245
|
# of message types can be found at
|
246
|
-
# {Vedeu::
|
246
|
+
# {Vedeu::Configuration.log_types}.
|
247
247
|
#
|
248
248
|
# Vedeu.configure do
|
249
249
|
# log_except :debug, :event
|
@@ -262,7 +262,7 @@ module Vedeu
|
|
262
262
|
end
|
263
263
|
|
264
264
|
# Only log specific message types. A complete list of message
|
265
|
-
# types can be found at {Vedeu::
|
265
|
+
# types can be found at {Vedeu::Configuration.log_types}.
|
266
266
|
#
|
267
267
|
# Vedeu.configure do
|
268
268
|
# log_only :debug, :event
|
@@ -180,12 +180,54 @@ module Vedeu
|
|
180
180
|
|
181
181
|
# @return [Array<Symbol>]
|
182
182
|
def log_except
|
183
|
-
instance.options[:log_except]
|
183
|
+
instance.options[:log_except]
|
184
184
|
end
|
185
185
|
|
186
186
|
# @return [Array<Symbol>]
|
187
187
|
def log_only
|
188
|
-
instance.options[:log_only]
|
188
|
+
instance.options[:log_only]
|
189
|
+
end
|
190
|
+
|
191
|
+
# The defined message types for Vedeu with their respective
|
192
|
+
# colours. When used, produces a log entry of the format:
|
193
|
+
#
|
194
|
+
# [type] message
|
195
|
+
#
|
196
|
+
# The 'type' will be shown as the first colour defined in the
|
197
|
+
# value array, whilst the 'message' will be shown using the
|
198
|
+
# last colour.
|
199
|
+
#
|
200
|
+
# @return [Hash<Symbol => Array<Symbol>>]
|
201
|
+
def log_types
|
202
|
+
{
|
203
|
+
blue: [:light_blue, :blue],
|
204
|
+
buffer: [:light_green, :green],
|
205
|
+
compress: [:white, :light_grey],
|
206
|
+
config: [:light_blue, :blue],
|
207
|
+
create: [:light_cyan, :cyan],
|
208
|
+
cursor: [:light_green, :green],
|
209
|
+
cyan: [:light_cyan, :cyan],
|
210
|
+
debug: [:white, :light_grey],
|
211
|
+
drb: [:light_blue, :blue],
|
212
|
+
dsl: [:light_blue, :blue],
|
213
|
+
editor: [:light_blue, :blue],
|
214
|
+
error: [:light_red, :red],
|
215
|
+
event: [:light_magenta, :magenta],
|
216
|
+
green: [:light_green, :green],
|
217
|
+
info: [:white, :light_grey],
|
218
|
+
input: [:light_yellow, :yellow],
|
219
|
+
magenta: [:light_magenta, :magenta],
|
220
|
+
output: [:light_yellow, :yellow],
|
221
|
+
red: [:light_red, :red],
|
222
|
+
render: [:light_green, :green],
|
223
|
+
reset: [:light_cyan, :cyan],
|
224
|
+
store: [:light_cyan, :cyan],
|
225
|
+
test: [:white, :light_grey],
|
226
|
+
timer: [:light_blue, :blue],
|
227
|
+
update: [:light_cyan, :cyan],
|
228
|
+
white: [:white, :light_grey],
|
229
|
+
yellow: [:light_yellow, :yellow],
|
230
|
+
}
|
189
231
|
end
|
190
232
|
|
191
233
|
# Returns true if the given type was included in the :log_only
|
@@ -195,7 +237,20 @@ module Vedeu
|
|
195
237
|
# @param type [Symbol]
|
196
238
|
# @return [Boolean]
|
197
239
|
def loggable?(type)
|
198
|
-
|
240
|
+
return false unless log_types.keys.include?(type)
|
241
|
+
return true if log_only.empty? && log_except.empty?
|
242
|
+
|
243
|
+
types = if log_except.any?
|
244
|
+
log_types.keys - log_except
|
245
|
+
else
|
246
|
+
log_types.keys
|
247
|
+
end
|
248
|
+
|
249
|
+
if log_only.any?
|
250
|
+
log_only.include?(type)
|
251
|
+
else
|
252
|
+
types.include?(type) ? true : false
|
253
|
+
end
|
199
254
|
end
|
200
255
|
|
201
256
|
# Returns whether mouse support was enabled or disabled.
|
data/lib/vedeu/editor/delete.rb
CHANGED
data/lib/vedeu/interfaces/dsl.rb
CHANGED
data/lib/vedeu/logging/debug.rb
CHANGED
@@ -65,7 +65,7 @@ module Vedeu
|
|
65
65
|
# - Creates a HTML visualization of the Ruby stack
|
66
66
|
::RubyProf::CallStackPrinter.new(result).print(file)
|
67
67
|
|
68
|
-
# Used with
|
68
|
+
# Used with KCachegrind to analyse performance.
|
69
69
|
# ::RubyProf::CallTreePrinter.new(result).print(file)
|
70
70
|
|
71
71
|
# Creates a flat report in text format
|
data/lib/vedeu/logging/log.rb
CHANGED
@@ -27,7 +27,8 @@ module Vedeu
|
|
27
27
|
# to write to the log file regardless of the Configuration
|
28
28
|
# setting.
|
29
29
|
# @param type [Symbol] Colour code messages in the log file
|
30
|
-
# depending on their source. See
|
30
|
+
# depending on their source. See
|
31
|
+
# {Vedeu::Configuration.log_types}
|
31
32
|
#
|
32
33
|
# @return [String]
|
33
34
|
def log(message:, force: false, type: :info)
|
@@ -40,7 +41,7 @@ module Vedeu
|
|
40
41
|
|
41
42
|
# {include:file:docs/dsl/by_method/log_stdout.md}
|
42
43
|
# @macro vedeu_logging_log_param_message
|
43
|
-
# @param type [Symbol] See {Vedeu::
|
44
|
+
# @param type [Symbol] See {Vedeu::Configuration.log_types}
|
44
45
|
# for valid values.
|
45
46
|
# @return [String]
|
46
47
|
def log_stdout(message:, type: :info)
|
@@ -51,7 +52,7 @@ module Vedeu
|
|
51
52
|
|
52
53
|
# {include:file:docs/dsl/by_method/log_stderr.md}
|
53
54
|
# @macro vedeu_logging_log_param_message
|
54
|
-
# @param type [Symbol] See {Vedeu::Logging::Log.
|
55
|
+
# @param type [Symbol] See {Vedeu::Logging::Log.types}
|
55
56
|
# for valid values.
|
56
57
|
# @return [String]
|
57
58
|
def log_stderr(message:, type: :error)
|
@@ -102,7 +103,7 @@ module Vedeu
|
|
102
103
|
# @macro vedeu_logging_log_param_message
|
103
104
|
# @return [String]
|
104
105
|
def log_entry(type, message)
|
105
|
-
colours =
|
106
|
+
colours = Vedeu.config.log_types.fetch(type, [:default, :default])
|
106
107
|
|
107
108
|
[
|
108
109
|
Vedeu.esc.colour(colours[0]) { "[#{type}]".ljust(11) },
|
@@ -110,56 +111,6 @@ module Vedeu
|
|
110
111
|
].join
|
111
112
|
end
|
112
113
|
|
113
|
-
# The defined message types for Vedeu with their respective
|
114
|
-
# colours. When used, produces a log entry of the format:
|
115
|
-
#
|
116
|
-
# [type] message
|
117
|
-
#
|
118
|
-
# The 'type' will be shown as the first colour defined in the
|
119
|
-
# value array, whilst the 'message' will be shown using the
|
120
|
-
# last colour.
|
121
|
-
#
|
122
|
-
# @return [Hash<Symbol => Array<Symbol>>]
|
123
|
-
def message_types
|
124
|
-
{
|
125
|
-
create: [:light_cyan, :cyan],
|
126
|
-
store: [:light_cyan, :cyan],
|
127
|
-
update: [:light_cyan, :cyan],
|
128
|
-
reset: [:light_cyan, :cyan],
|
129
|
-
|
130
|
-
event: [:light_magenta, :magenta],
|
131
|
-
|
132
|
-
timer: [:light_blue, :blue],
|
133
|
-
|
134
|
-
info: [:white, :light_grey],
|
135
|
-
test: [:white, :light_grey],
|
136
|
-
debug: [:white, :light_grey],
|
137
|
-
compress: [:white, :light_grey],
|
138
|
-
|
139
|
-
input: [:light_yellow, :yellow],
|
140
|
-
output: [:light_yellow, :yellow],
|
141
|
-
|
142
|
-
cursor: [:light_green, :green],
|
143
|
-
buffer: [:light_green, :green],
|
144
|
-
render: [:light_green, :green],
|
145
|
-
|
146
|
-
error: [:light_red, :red],
|
147
|
-
|
148
|
-
config: [:light_blue, :blue],
|
149
|
-
dsl: [:light_blue, :blue],
|
150
|
-
editor: [:light_blue, :blue],
|
151
|
-
drb: [:light_blue, :blue],
|
152
|
-
|
153
|
-
blue: [:light_blue, :blue],
|
154
|
-
cyan: [:light_cyan, :cyan],
|
155
|
-
green: [:light_green, :green],
|
156
|
-
magenta: [:light_magenta, :magenta],
|
157
|
-
red: [:light_red, :red],
|
158
|
-
white: [:white, :light_grey],
|
159
|
-
yellow: [:light_yellow, :yellow],
|
160
|
-
}
|
161
|
-
end
|
162
|
-
|
163
114
|
end # Eigenclass
|
164
115
|
|
165
116
|
end # Log
|
@@ -140,6 +140,15 @@ module Vedeu
|
|
140
140
|
present?(parent) && parent.respond_to?(:colour?)
|
141
141
|
end
|
142
142
|
|
143
|
+
# Renders the colour attributes of the receiver and yields (to
|
144
|
+
# then render the styles).
|
145
|
+
#
|
146
|
+
# @param block [Proc]
|
147
|
+
# @return [String]
|
148
|
+
def render_colour(&block)
|
149
|
+
"#{colour}#{yield}"
|
150
|
+
end
|
151
|
+
|
143
152
|
end # Colour
|
144
153
|
|
145
154
|
end # Presentation
|
@@ -50,6 +50,16 @@ module Vedeu
|
|
50
50
|
position.y if position?
|
51
51
|
end
|
52
52
|
|
53
|
+
private
|
54
|
+
|
55
|
+
# @param block [Proc]
|
56
|
+
# @return [String]
|
57
|
+
def render_position(&block)
|
58
|
+
return position.to_s { yield } if position?
|
59
|
+
|
60
|
+
yield
|
61
|
+
end
|
62
|
+
|
53
63
|
end # Position
|
54
64
|
|
55
65
|
end # Presentation
|
@@ -18,34 +18,6 @@ module Vedeu
|
|
18
18
|
end
|
19
19
|
alias to_str to_s
|
20
20
|
|
21
|
-
private
|
22
|
-
|
23
|
-
# Renders the colour attributes of the receiver and yields (to
|
24
|
-
# then render the styles).
|
25
|
-
#
|
26
|
-
# @param block [Proc]
|
27
|
-
# @return [String]
|
28
|
-
def render_colour(&block)
|
29
|
-
"#{colour}#{yield}"
|
30
|
-
end
|
31
|
-
|
32
|
-
# @param block [Proc]
|
33
|
-
# @return [String]
|
34
|
-
def render_position(&block)
|
35
|
-
return position.to_s { yield } if position?
|
36
|
-
|
37
|
-
yield
|
38
|
-
end
|
39
|
-
|
40
|
-
# Renders the style attributes of the receiver and yields (to
|
41
|
-
# then render the next model, or finally, the content).
|
42
|
-
#
|
43
|
-
# @param block [Proc]
|
44
|
-
# @return [String]
|
45
|
-
def render_style(&block)
|
46
|
-
"#{style}#{yield}"
|
47
|
-
end
|
48
|
-
|
49
21
|
end # Presentation
|
50
22
|
|
51
23
|
end # Vedeu
|
@@ -52,6 +52,17 @@ module Vedeu
|
|
52
52
|
@_style = @style = Vedeu::Presentation::Style.coerce(value)
|
53
53
|
end
|
54
54
|
|
55
|
+
private
|
56
|
+
|
57
|
+
# Renders the style attributes of the receiver and yields (to
|
58
|
+
# then render the next model, or finally, the content).
|
59
|
+
#
|
60
|
+
# @param block [Proc]
|
61
|
+
# @return [String]
|
62
|
+
def render_style(&block)
|
63
|
+
"#{style}#{yield}"
|
64
|
+
end
|
65
|
+
|
55
66
|
end # Style
|
56
67
|
|
57
68
|
end # Presentation
|
data/lib/vedeu/renderers/all.rb
CHANGED
@@ -132,8 +132,9 @@ module Vedeu
|
|
132
132
|
|
133
133
|
end # Vedeu
|
134
134
|
|
135
|
-
require 'vedeu/renderers/options'
|
136
|
-
require 'vedeu/renderers/file'
|
135
|
+
require 'vedeu/renderers/support/options'
|
136
|
+
require 'vedeu/renderers/support/file'
|
137
|
+
|
137
138
|
require 'vedeu/renderers/escape'
|
138
139
|
require 'vedeu/renderers/html'
|
139
140
|
require 'vedeu/renderers/json'
|
File without changes
|
File without changes
|
data/lib/vedeu/version.rb
CHANGED
data/lib/vedeu/views/chars.rb
CHANGED
@@ -10,47 +10,53 @@ module Vedeu
|
|
10
10
|
#
|
11
11
|
class Chars < Vedeu::Repositories::Collection
|
12
12
|
|
13
|
-
|
14
|
-
# @param parent [Vedeu::Views::Stream]
|
15
|
-
# @param name [NilClass|Symbol|String]
|
16
|
-
# @macro raise_invalid_syntax
|
17
|
-
# @return [Vedeu::Views::Chars]
|
18
|
-
def self.coerce(collection = [], parent = nil, name = nil)
|
19
|
-
if collection.is_a?(Vedeu::Views::Chars)
|
20
|
-
collection
|
21
|
-
|
22
|
-
elsif collection.is_a?(Array)
|
23
|
-
return new(collection, parent, name) if collection.empty?
|
24
|
-
|
25
|
-
coerced_collection = []
|
26
|
-
collection.each do |element|
|
27
|
-
coerced_collection << element if element.is_a?(Vedeu::Cells::Char)
|
28
|
-
end
|
13
|
+
class << self
|
29
14
|
|
30
|
-
|
15
|
+
include Vedeu::Common
|
31
16
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
17
|
+
# @param collection [void]
|
18
|
+
# @param parent [Vedeu::Views::Stream]
|
19
|
+
# @param name [NilClass|Symbol|String]
|
20
|
+
# @macro raise_invalid_syntax
|
21
|
+
# @return [Vedeu::Views::Chars]
|
22
|
+
def coerce(collection = [], parent = nil, name = nil)
|
23
|
+
if collection.is_a?(Vedeu::Views::Chars)
|
24
|
+
collection
|
36
25
|
|
37
|
-
|
38
|
-
|
26
|
+
elsif array?(collection)
|
27
|
+
return new(collection, parent, name) if collection.empty?
|
39
28
|
|
40
|
-
|
41
|
-
|
42
|
-
|
29
|
+
coerced_collection = []
|
30
|
+
collection.each do |element|
|
31
|
+
coerced_collection << element if element.is_a?(Vedeu::Cells::Char)
|
32
|
+
end
|
43
33
|
|
44
|
-
new(
|
45
|
-
|
34
|
+
new(coerced_collection, parent, name)
|
35
|
+
|
36
|
+
elsif collection.is_a?(Vedeu::Views::Stream)
|
37
|
+
Vedeu::Views::Chars.coerce(collection.value,
|
38
|
+
collection.parent,
|
39
|
+
collection.name)
|
40
|
+
|
41
|
+
elsif string?(collection)
|
42
|
+
return new([], parent, name) if collection.empty?
|
46
43
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
'unrecognised.'
|
44
|
+
if parent && parent.attributes
|
45
|
+
new_collection = Vedeu::DSL::Text.new(collection,
|
46
|
+
parent.attributes).chars
|
51
47
|
|
48
|
+
new(new_collection, parent, name)
|
49
|
+
end
|
50
|
+
|
51
|
+
else
|
52
|
+
raise Vedeu::Error::InvalidSyntax,
|
53
|
+
'Cannot coerce for Vedeu::View::Chars, as collection is ' \
|
54
|
+
'unrecognised.'
|
55
|
+
|
56
|
+
end
|
52
57
|
end
|
53
|
-
|
58
|
+
|
59
|
+
end # Eigenclass
|
54
60
|
|
55
61
|
alias chars value
|
56
62
|
|
data/lib/vedeu/views/lines.rb
CHANGED
@@ -10,38 +10,44 @@ module Vedeu
|
|
10
10
|
#
|
11
11
|
class Lines < Vedeu::Repositories::Collection
|
12
12
|
|
13
|
-
|
14
|
-
# @macro raise_invalid_syntax
|
15
|
-
# @return [Vedeu::Views::Lines]
|
16
|
-
def self.coerce(collection = [], parent = nil, name = nil)
|
17
|
-
if collection.is_a?(Vedeu::Views::Lines)
|
18
|
-
collection
|
19
|
-
|
20
|
-
elsif collection.is_a?(Vedeu::Views::Streams)
|
21
|
-
if collection.empty?
|
22
|
-
# @todo Investigate whether this is being used.
|
23
|
-
end
|
13
|
+
class << self
|
24
14
|
|
25
|
-
|
26
|
-
return new(collection, parent, name) if collection.empty?
|
15
|
+
include Vedeu::Common
|
27
16
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
17
|
+
# @param (see Vedeu::Repositories::Collection#initialize)
|
18
|
+
# @macro raise_invalid_syntax
|
19
|
+
# @return [Vedeu::Views::Lines]
|
20
|
+
def coerce(collection = [], parent = nil, name = nil)
|
21
|
+
if collection.is_a?(Vedeu::Views::Lines)
|
22
|
+
collection
|
23
|
+
|
24
|
+
elsif collection.is_a?(Vedeu::Views::Streams)
|
25
|
+
if collection.empty?
|
26
|
+
# @todo Investigate whether this is being used.
|
27
|
+
end
|
28
|
+
|
29
|
+
elsif array?(collection)
|
30
|
+
return new(collection, parent, name) if collection.empty?
|
32
31
|
|
33
|
-
|
32
|
+
coerced_collection = []
|
33
|
+
collection.each do |element|
|
34
|
+
coerced_collection << element if element.is_a?(Vedeu::Views::Line)
|
35
|
+
end
|
34
36
|
|
35
|
-
|
36
|
-
new([collection], parent, name)
|
37
|
+
new(coerced_collection, parent, name)
|
37
38
|
|
38
|
-
|
39
|
-
|
40
|
-
'Cannot coerce for Vedeu::View::Lines, as collection ' \
|
41
|
-
'unrecognised.'
|
39
|
+
elsif collection.is_a?(Vedeu::Views::Line)
|
40
|
+
new([collection], parent, name)
|
42
41
|
|
42
|
+
else
|
43
|
+
raise Vedeu::Error::InvalidSyntax,
|
44
|
+
'Cannot coerce for Vedeu::View::Lines, as collection ' \
|
45
|
+
'unrecognised.'
|
46
|
+
|
47
|
+
end
|
43
48
|
end
|
44
|
-
|
49
|
+
|
50
|
+
end # Eigenclass
|
45
51
|
|
46
52
|
alias lines value
|
47
53
|
|
data/lib/vedeu/views/streams.rb
CHANGED
@@ -10,49 +10,55 @@ module Vedeu
|
|
10
10
|
#
|
11
11
|
class Streams < Vedeu::Repositories::Collection
|
12
12
|
|
13
|
-
|
14
|
-
# @macro raise_invalid_syntax
|
15
|
-
# @return [Vedeu::Views::Streams]
|
16
|
-
def self.coerce(collection = [], parent = nil, name = nil)
|
17
|
-
if collection.is_a?(Vedeu::Views::Streams)
|
18
|
-
collection
|
13
|
+
class << self
|
19
14
|
|
20
|
-
|
21
|
-
return new(collection, parent, name) if collection.empty?
|
15
|
+
include Vedeu::Common
|
22
16
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
# @param (see Vedeu::Repositories::Collection#initialize)
|
18
|
+
# @macro raise_invalid_syntax
|
19
|
+
# @return [Vedeu::Views::Streams]
|
20
|
+
def coerce(collection = [], parent = nil, name = nil)
|
21
|
+
if collection.is_a?(Vedeu::Views::Streams)
|
22
|
+
collection
|
27
23
|
|
28
|
-
|
29
|
-
|
24
|
+
elsif array?(collection)
|
25
|
+
return new(collection, parent, name) if collection.empty?
|
30
26
|
|
27
|
+
coerced_collection = []
|
28
|
+
collection.each do |element|
|
29
|
+
if element.is_a?(Vedeu::Views::Stream)
|
30
|
+
coerced_collection << element
|
31
|
+
|
32
|
+
elsif string?(element)
|
33
|
+
coerced_collection << Vedeu::Views::Stream.new(value: element)
|
34
|
+
|
35
|
+
end
|
31
36
|
end
|
32
|
-
end
|
33
37
|
|
34
|
-
|
38
|
+
new(coerced_collection, parent, name)
|
35
39
|
|
36
|
-
|
37
|
-
|
40
|
+
elsif collection.is_a?(Vedeu::Views::Stream)
|
41
|
+
new([collection], parent, name)
|
38
42
|
|
39
|
-
|
40
|
-
|
43
|
+
elsif collection.is_a?(Vedeu::Views::Chars)
|
44
|
+
return new([], parent, name) if collection.empty?
|
41
45
|
|
42
|
-
|
46
|
+
new([Vedeu::Views::Stream.new(value: collection)], parent, name)
|
43
47
|
|
44
|
-
|
45
|
-
|
48
|
+
elsif string?(collection)
|
49
|
+
return new([], parent, name) if collection.empty?
|
46
50
|
|
47
|
-
|
51
|
+
new([Vedeu::Views::Stream.new(value: collection)], parent, name)
|
48
52
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
+
else
|
54
|
+
raise Vedeu::Error::InvalidSyntax,
|
55
|
+
'Cannot coerce for Vedeu::View::Streams, as collection ' \
|
56
|
+
"unrecognised. (#{collection.class.name})"
|
53
57
|
|
58
|
+
end
|
54
59
|
end
|
55
|
-
|
60
|
+
|
61
|
+
end # Eigenclass
|
56
62
|
|
57
63
|
alias streams value
|
58
64
|
|
@@ -21,7 +21,7 @@ module Vedeu
|
|
21
21
|
}
|
22
22
|
let(:colour) { {} }
|
23
23
|
let(:_name) { '' }
|
24
|
-
let(:position) {}
|
24
|
+
let(:position) { Vedeu::Geometries::Position.new(1, 1) }
|
25
25
|
let(:style) { '' }
|
26
26
|
let(:_value) { '' }
|
27
27
|
|
@@ -47,7 +47,9 @@ module Vedeu
|
|
47
47
|
it { subject.must_equal(true) }
|
48
48
|
|
49
49
|
context 'when different to other' do
|
50
|
-
let(:other) {
|
50
|
+
let(:other) {
|
51
|
+
described.new(position: Vedeu::Geometries::Position.new(1, 2))
|
52
|
+
}
|
51
53
|
|
52
54
|
it { subject.must_equal(false) }
|
53
55
|
end
|
@@ -64,7 +66,6 @@ module Vedeu
|
|
64
66
|
end
|
65
67
|
|
66
68
|
describe '#to_h' do
|
67
|
-
let(:position) { Vedeu::Geometries::Position.new(1, 1) }
|
68
69
|
let(:colour) { Vedeu::Colours::Colour.new(background: '#000000') }
|
69
70
|
let(:expected) {
|
70
71
|
{
|
@@ -101,7 +102,8 @@ module Vedeu
|
|
101
102
|
end
|
102
103
|
|
103
104
|
describe '#to_s' do
|
104
|
-
let(:
|
105
|
+
let(:position) {}
|
106
|
+
let(:_value) { 'a' }
|
105
107
|
|
106
108
|
subject { instance.to_s }
|
107
109
|
|
@@ -63,6 +63,22 @@ module Vedeu
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
describe '#array?' do
|
67
|
+
let(:_value) {}
|
68
|
+
|
69
|
+
subject { instance.array?(_value) }
|
70
|
+
|
71
|
+
context 'when the value is an Array' do
|
72
|
+
let(:_value) { [:hydrogen] }
|
73
|
+
|
74
|
+
it { subject.must_equal(true) }
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'when the value is not an Array' do
|
78
|
+
it { subject.must_equal(false) }
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
66
82
|
describe '#boolean' do
|
67
83
|
subject { instance.boolean(_value) }
|
68
84
|
|
@@ -264,12 +264,8 @@ module Vedeu
|
|
264
264
|
describe '#log_except' do
|
265
265
|
it 'sets the options to the desired value' do
|
266
266
|
configuration = Vedeu.configure { log_except :debug, :store }
|
267
|
-
configuration.log_except.
|
268
|
-
|
269
|
-
|
270
|
-
it 'sets the options to the desired value' do
|
271
|
-
configuration = Vedeu.configure { log_except [:debug, :info] }
|
272
|
-
configuration.log_except.must_equal([:debug, :info])
|
267
|
+
configuration.log_except.must_include(:debug)
|
268
|
+
configuration.log_except.must_include(:store)
|
273
269
|
end
|
274
270
|
end
|
275
271
|
|
@@ -278,11 +274,6 @@ module Vedeu
|
|
278
274
|
configuration = Vedeu.configure { log_only :debug, :store }
|
279
275
|
configuration.log_only.must_equal([:debug, :store])
|
280
276
|
end
|
281
|
-
|
282
|
-
it 'sets the options to the desired value' do
|
283
|
-
configuration = Vedeu.configure { log_only [:debug, :info] }
|
284
|
-
configuration.log_only.must_equal([:debug, :info])
|
285
|
-
end
|
286
277
|
end
|
287
278
|
|
288
279
|
describe '#renderer' do
|
@@ -107,7 +107,8 @@ module Vedeu
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
-
it { described.log_except.
|
110
|
+
it { described.log_except.must_include(:timer) }
|
111
|
+
it { described.log_except.must_include(:event) }
|
111
112
|
end
|
112
113
|
end
|
113
114
|
|
@@ -123,49 +124,76 @@ module Vedeu
|
|
123
124
|
end
|
124
125
|
end
|
125
126
|
|
126
|
-
it { described.log_only.
|
127
|
+
it { described.log_only.must_include(:timer) }
|
128
|
+
it { described.log_only.must_include(:event) }
|
127
129
|
end
|
128
130
|
end
|
129
131
|
|
130
|
-
describe '.
|
131
|
-
|
132
|
+
describe '.log_types' do
|
133
|
+
subject { described.log_types }
|
134
|
+
|
135
|
+
it { subject.must_be_instance_of(Hash) }
|
136
|
+
end
|
132
137
|
|
138
|
+
describe '.loggable?' do
|
133
139
|
subject { described.loggable?(type) }
|
134
140
|
|
135
|
-
context 'when the type
|
136
|
-
|
137
|
-
described.stubs(:log_only).returns([:hydrogen])
|
138
|
-
described.stubs(:log_except).returns([:hydrogen])
|
139
|
-
end
|
141
|
+
context 'when the type is invalid' do
|
142
|
+
let(:type) { :hydrogen }
|
140
143
|
|
141
|
-
it { subject.must_equal(
|
144
|
+
it { subject.must_equal(false) }
|
142
145
|
end
|
143
146
|
|
144
|
-
context 'when the type
|
145
|
-
|
146
|
-
|
147
|
-
|
147
|
+
context 'when the type is valid' do
|
148
|
+
let(:type) { :debug }
|
149
|
+
|
150
|
+
context 'when log_only and log_except are both empty' do
|
151
|
+
it { subject.must_equal(true) }
|
148
152
|
end
|
149
153
|
|
150
|
-
|
151
|
-
|
154
|
+
context 'when log_only contains entries' do
|
155
|
+
context 'when log_only includes the type' do
|
156
|
+
before do
|
157
|
+
Vedeu.configure do
|
158
|
+
log_only [:info, :debug, :error]
|
159
|
+
end
|
160
|
+
end
|
152
161
|
|
153
|
-
|
154
|
-
|
155
|
-
described.stubs(:log_only).returns([])
|
156
|
-
described.stubs(:log_except).returns([:hydrogen])
|
157
|
-
end
|
162
|
+
it { subject.must_equal(true) }
|
163
|
+
end
|
158
164
|
|
159
|
-
|
160
|
-
|
165
|
+
context 'when log_only does not include the type' do
|
166
|
+
before do
|
167
|
+
Vedeu.configure do
|
168
|
+
log_only [:info, :error]
|
169
|
+
end
|
170
|
+
end
|
161
171
|
|
162
|
-
|
163
|
-
|
164
|
-
described.stubs(:log_only).returns([])
|
165
|
-
described.stubs(:log_except).returns([])
|
172
|
+
it { subject.must_equal(false) }
|
173
|
+
end
|
166
174
|
end
|
167
175
|
|
168
|
-
|
176
|
+
context 'when log_except contains entries' do
|
177
|
+
context 'when log_except includes the type' do
|
178
|
+
before do
|
179
|
+
Vedeu.configure do
|
180
|
+
log_except [:info, :debug, :error]
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
it { subject.must_equal(false) }
|
185
|
+
end
|
186
|
+
|
187
|
+
context 'when log_except does not include the type' do
|
188
|
+
before do
|
189
|
+
Vedeu.configure do
|
190
|
+
log_only [:info, :error]
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
it { subject.must_equal(false) }
|
195
|
+
end
|
196
|
+
end
|
169
197
|
end
|
170
198
|
end
|
171
199
|
|
File without changes
|
File without changes
|
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.8.
|
4
|
+
version: 0.8.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Laking
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: guard
|
@@ -783,10 +783,10 @@ files:
|
|
783
783
|
- lib/vedeu/presentation/styles.rb
|
784
784
|
- lib/vedeu/renderers/all.rb
|
785
785
|
- lib/vedeu/renderers/escape.rb
|
786
|
-
- lib/vedeu/renderers/file.rb
|
787
786
|
- lib/vedeu/renderers/html.rb
|
788
787
|
- lib/vedeu/renderers/json.rb
|
789
|
-
- lib/vedeu/renderers/
|
788
|
+
- lib/vedeu/renderers/support/file.rb
|
789
|
+
- lib/vedeu/renderers/support/options.rb
|
790
790
|
- lib/vedeu/renderers/templates/html_renderer.vedeu
|
791
791
|
- lib/vedeu/renderers/terminal.rb
|
792
792
|
- lib/vedeu/renderers/text.rb
|
@@ -1010,10 +1010,10 @@ files:
|
|
1010
1010
|
- test/lib/vedeu/presentation/styles_test.rb
|
1011
1011
|
- test/lib/vedeu/renderers/all_test.rb
|
1012
1012
|
- test/lib/vedeu/renderers/escape_test.rb
|
1013
|
-
- test/lib/vedeu/renderers/file_test.rb
|
1014
1013
|
- test/lib/vedeu/renderers/html_test.rb
|
1015
1014
|
- test/lib/vedeu/renderers/json_test.rb
|
1016
|
-
- test/lib/vedeu/renderers/
|
1015
|
+
- test/lib/vedeu/renderers/support/file_test.rb
|
1016
|
+
- test/lib/vedeu/renderers/support/options_test.rb
|
1017
1017
|
- test/lib/vedeu/renderers/terminal_test.rb
|
1018
1018
|
- test/lib/vedeu/renderers/text_test.rb
|
1019
1019
|
- test/lib/vedeu/repositories/assemblage_test.rb
|
@@ -1275,10 +1275,10 @@ test_files:
|
|
1275
1275
|
- test/lib/vedeu/presentation/styles_test.rb
|
1276
1276
|
- test/lib/vedeu/renderers/all_test.rb
|
1277
1277
|
- test/lib/vedeu/renderers/escape_test.rb
|
1278
|
-
- test/lib/vedeu/renderers/file_test.rb
|
1279
1278
|
- test/lib/vedeu/renderers/html_test.rb
|
1280
1279
|
- test/lib/vedeu/renderers/json_test.rb
|
1281
|
-
- test/lib/vedeu/renderers/
|
1280
|
+
- test/lib/vedeu/renderers/support/file_test.rb
|
1281
|
+
- test/lib/vedeu/renderers/support/options_test.rb
|
1282
1282
|
- test/lib/vedeu/renderers/terminal_test.rb
|
1283
1283
|
- test/lib/vedeu/renderers/text_test.rb
|
1284
1284
|
- test/lib/vedeu/repositories/assemblage_test.rb
|