vedeu 0.5.5 → 0.5.6
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/examples/material_colours_app.rb +25 -0
- data/lib/vedeu/all.rb +0 -1
- data/lib/vedeu/colours/colour_translator.rb +6 -6
- data/lib/vedeu/cursor/cursor.rb +0 -12
- data/lib/vedeu/dsl.rb +23 -0
- data/lib/vedeu/dsl/border.rb +0 -10
- data/lib/vedeu/dsl/composition.rb +1 -19
- data/lib/vedeu/dsl/geometry.rb +0 -10
- data/lib/vedeu/dsl/group.rb +0 -10
- data/lib/vedeu/dsl/interface.rb +0 -20
- data/lib/vedeu/dsl/keymap.rb +0 -10
- data/lib/vedeu/dsl/line.rb +3 -21
- data/lib/vedeu/dsl/menu.rb +0 -10
- data/lib/vedeu/dsl/stream.rb +4 -10
- data/lib/vedeu/dsl/view.rb +0 -20
- data/lib/vedeu/geometry/geometry.rb +0 -13
- data/lib/vedeu/geometry/position.rb +11 -0
- data/lib/vedeu/models/escape.rb +0 -7
- data/lib/vedeu/models/interface.rb +4 -16
- data/lib/vedeu/models/views/all.rb +4 -5
- data/lib/vedeu/models/views/char.rb +21 -22
- data/lib/vedeu/models/views/{chars.rb → collections/chars.rb} +0 -0
- data/lib/vedeu/models/views/{lines.rb → collections/lines.rb} +0 -0
- data/lib/vedeu/models/views/{streams.rb → collections/streams.rb} +0 -0
- data/lib/vedeu/models/views/{view_collection.rb → collections/view_collection.rb} +0 -0
- data/lib/vedeu/models/views/composition.rb +17 -19
- data/lib/vedeu/models/views/line.rb +19 -31
- data/lib/vedeu/models/views/stream.rb +7 -20
- data/lib/vedeu/models/views/view.rb +22 -35
- data/lib/vedeu/output/html_char.rb +38 -28
- data/lib/vedeu/output/presentation/colour.rb +15 -44
- data/lib/vedeu/output/presentation/style.rb +7 -14
- data/lib/vedeu/output/viewport.rb +0 -3
- data/lib/vedeu/output/virtual_terminal.rb +2 -2
- data/lib/vedeu/repositories/repository.rb +0 -7
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/buffers/buffer_test.rb +4 -4
- data/test/lib/vedeu/colours/colour_translator_test.rb +14 -0
- data/test/lib/vedeu/cursor/cursor_test.rb +0 -9
- data/test/lib/vedeu/dsl/line_test.rb +15 -13
- data/test/lib/vedeu/geometry/geometry_test.rb +0 -13
- data/test/lib/vedeu/geometry/position_test.rb +18 -0
- data/test/lib/vedeu/models/escape_test.rb +0 -8
- data/test/lib/vedeu/models/interface_test.rb +0 -12
- data/test/lib/vedeu/models/views/char_test.rb +4 -23
- data/test/lib/vedeu/models/views/{chars_test.rb → collections/chars_test.rb} +0 -0
- data/test/lib/vedeu/models/views/{lines_test.rb → collections/lines_test.rb} +0 -0
- data/test/lib/vedeu/models/views/{streams_test.rb → collections/streams_test.rb} +0 -0
- data/test/lib/vedeu/models/views/collections/view_collection_test.rb +22 -0
- data/test/lib/vedeu/models/views/composition_test.rb +23 -17
- data/test/lib/vedeu/models/views/line_test.rb +13 -42
- data/test/lib/vedeu/models/views/stream_test.rb +4 -33
- data/test/lib/vedeu/output/html_char_test.rb +16 -39
- data/test/lib/vedeu/output/presentation/colour_test.rb +63 -60
- data/test/lib/vedeu/output/presentation/style_test.rb +30 -29
- data/test/lib/vedeu/output/presentation_test.rb +1 -1
- data/test/lib/vedeu/output/renderers/html_test.rb +4 -8
- data/test/lib/vedeu/output/renderers/json_test.rb +37 -3
- data/test/lib/vedeu/output/wordwrap_test.rb +4 -4
- data/test/lib/vedeu/repositories/repository_test.rb +0 -26
- data/test/lib/vedeu/templating/view_template_test.rb +8 -8
- metadata +13 -17
- data/lib/vedeu/geometry/position_index.rb +0 -68
- data/lib/vedeu/models/interface_collection.rb +0 -9
- data/test/lib/vedeu/geometry/position_index_test.rb +0 -82
- data/test/lib/vedeu/models/interface_collection_test.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09870ba45d07181770a6a5ce2cb4d76791e4407c
|
4
|
+
data.tar.gz: a8fc2634c87ee748a2ef2088f9ec1e0ffa9bf4a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1fa1db173f45c407e2430aa91b34a2ba4e01e7153add82561928c7369fbd16b11ac23f8f21264407f7ea1fd2ff89986a11a1174911e9e85950440286549d93f
|
7
|
+
data.tar.gz: d6520ef6b775f1d5413271fba57b2c28394428fc41af772742c1b92aad2beed4b4c8c72dd939687a3b845465ddb3353e20910fe6cdb22a995ea110f45a7bbefa
|
@@ -70,6 +70,27 @@ class VedeuMaterialColoursApp
|
|
70
70
|
zindex(1)
|
71
71
|
end
|
72
72
|
|
73
|
+
Vedeu.interface 'empty_interface' do
|
74
|
+
border 'empty_interface' do
|
75
|
+
colour(foreground: '#ffffff', background: :default)
|
76
|
+
title('Empty!')
|
77
|
+
horizontal('-')
|
78
|
+
top_right('+')
|
79
|
+
top_left('+')
|
80
|
+
bottom_right('+')
|
81
|
+
bottom_left('+')
|
82
|
+
end
|
83
|
+
colour(foreground: '#ffffff', background: :default)
|
84
|
+
cursor!
|
85
|
+
geometry 'empty_interface' do
|
86
|
+
x(50)
|
87
|
+
xn(64)
|
88
|
+
y(5)
|
89
|
+
yn(13)
|
90
|
+
end
|
91
|
+
zindex(1)
|
92
|
+
end
|
93
|
+
|
73
94
|
Vedeu.keymap('_global_') do
|
74
95
|
key(:up) { Vedeu.trigger(:_cursor_up_) }
|
75
96
|
key(:right) { Vedeu.trigger(:_cursor_right_) }
|
@@ -149,6 +170,10 @@ class VedeuMaterialColoursApp
|
|
149
170
|
line { centre 'Pink', width: 20, background: '#e91e63' }
|
150
171
|
line { centre 'Red', width: 20, background: '#f44336' }
|
151
172
|
end
|
173
|
+
|
174
|
+
view 'empty_interface' do
|
175
|
+
line { line '' }
|
176
|
+
end
|
152
177
|
end
|
153
178
|
|
154
179
|
Vedeu.focus_by_name 'main_interface'
|
data/lib/vedeu/all.rb
CHANGED
@@ -46,7 +46,6 @@ require 'vedeu/geometry/dimension'
|
|
46
46
|
require 'vedeu/geometry/geometry'
|
47
47
|
require 'vedeu/geometry/geometries'
|
48
48
|
require 'vedeu/geometry/grid'
|
49
|
-
require 'vedeu/geometry/position_index'
|
50
49
|
require 'vedeu/geometry/position'
|
51
50
|
|
52
51
|
require 'vedeu/colours/escape_sequences'
|
@@ -50,6 +50,11 @@ module Vedeu
|
|
50
50
|
@colour = colour || ''
|
51
51
|
end
|
52
52
|
|
53
|
+
# @return [Boolean]
|
54
|
+
def empty?
|
55
|
+
colour.nil? || colour.to_s.empty?
|
56
|
+
end
|
57
|
+
|
53
58
|
# An object is equal when its values are the same.
|
54
59
|
#
|
55
60
|
# @param other [Vedeu::Views::Char]
|
@@ -62,7 +67,7 @@ module Vedeu
|
|
62
67
|
# @return [String]
|
63
68
|
# @see Vedeu::ColourTranslator
|
64
69
|
def escape_sequence
|
65
|
-
if
|
70
|
+
if empty?
|
66
71
|
''
|
67
72
|
|
68
73
|
elsif registered?(colour)
|
@@ -124,11 +129,6 @@ module Vedeu
|
|
124
129
|
repository.registered?(colour)
|
125
130
|
end
|
126
131
|
|
127
|
-
# @return [Boolean]
|
128
|
-
def no_colour?
|
129
|
-
colour.nil? || colour.to_s.empty?
|
130
|
-
end
|
131
|
-
|
132
132
|
# @return [Boolean]
|
133
133
|
def named?
|
134
134
|
colour.is_a?(Symbol) && valid_name?
|
data/lib/vedeu/cursor/cursor.rb
CHANGED
@@ -62,18 +62,6 @@ module Vedeu
|
|
62
62
|
@attributes.each { |key, value| instance_variable_set("@#{key}", value) }
|
63
63
|
end
|
64
64
|
|
65
|
-
# Override Ruby's Object#inspect method to provide a more helpful output.
|
66
|
-
#
|
67
|
-
# @return [String]
|
68
|
-
def inspect
|
69
|
-
"<Vedeu::Cursor (#{name}, " \
|
70
|
-
"#{visible}, " \
|
71
|
-
"x:#{x}, " \
|
72
|
-
"y:#{y}, " \
|
73
|
-
"ox:#{ox}, " \
|
74
|
-
"oy:#{oy})>"
|
75
|
-
end
|
76
|
-
|
77
65
|
# Renders the cursor.
|
78
66
|
#
|
79
67
|
# @return [void]
|
data/lib/vedeu/dsl.rb
CHANGED
@@ -4,8 +4,31 @@ module Vedeu
|
|
4
4
|
#
|
5
5
|
module DSL
|
6
6
|
|
7
|
+
protected
|
8
|
+
|
9
|
+
# @!attribute [r] client
|
10
|
+
# @return [Object] The object instance where the DSL is being used.
|
11
|
+
attr_reader :client
|
12
|
+
|
13
|
+
# @!attribute [r] model
|
14
|
+
# @return [void] The new model object which the DSL is constructing.
|
15
|
+
attr_reader :model
|
16
|
+
|
7
17
|
private
|
8
18
|
|
19
|
+
# Returns the default attributes for the new model.
|
20
|
+
#
|
21
|
+
# @note
|
22
|
+
# Specific DSL classes may be overriding this method.
|
23
|
+
#
|
24
|
+
# @return [Hash<Symbol => void>]
|
25
|
+
def attributes
|
26
|
+
{
|
27
|
+
client: client,
|
28
|
+
parent: model,
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
9
32
|
# :nocov:
|
10
33
|
# Attempts to find the missing method on the client object.
|
11
34
|
#
|
data/lib/vedeu/dsl/border.rb
CHANGED
@@ -337,16 +337,6 @@ module Vedeu
|
|
337
337
|
model.vertical = char
|
338
338
|
end
|
339
339
|
|
340
|
-
protected
|
341
|
-
|
342
|
-
# @!attribute [r] client
|
343
|
-
# @return [Object]
|
344
|
-
attr_reader :client
|
345
|
-
|
346
|
-
# @!attribute [r] model
|
347
|
-
# @return [Vedeu::Border]
|
348
|
-
attr_reader :model
|
349
|
-
|
350
340
|
end # Border
|
351
341
|
|
352
342
|
end # DSL
|
@@ -117,23 +117,13 @@ module Vedeu
|
|
117
117
|
model.add(new_model)
|
118
118
|
end
|
119
119
|
|
120
|
-
protected
|
121
|
-
|
122
|
-
# @!attribute [r] client
|
123
|
-
# @return [Object]
|
124
|
-
attr_reader :client
|
125
|
-
|
126
|
-
# @!attribute [r] model
|
127
|
-
# @return [Vedeu::Views::Composition]
|
128
|
-
attr_reader :model
|
129
|
-
|
130
120
|
private
|
131
121
|
|
132
122
|
# @param name [String]
|
133
123
|
# @param lines [Vedeu::Views::Lines]
|
134
124
|
# @return [Hash]
|
135
125
|
def template_attributes(name, lines)
|
136
|
-
new_attributes(name).merge!(
|
126
|
+
new_attributes(name).merge!(value: lines)
|
137
127
|
end
|
138
128
|
|
139
129
|
# Return the current attributes combined with the existing interface
|
@@ -153,14 +143,6 @@ module Vedeu
|
|
153
143
|
Vedeu.interfaces.by_name(name).attributes
|
154
144
|
end
|
155
145
|
|
156
|
-
# @return [Hash]
|
157
|
-
def attributes
|
158
|
-
{
|
159
|
-
client: client,
|
160
|
-
parent: model,
|
161
|
-
}
|
162
|
-
end
|
163
|
-
|
164
146
|
end # Composition
|
165
147
|
|
166
148
|
end # DSL
|
data/lib/vedeu/dsl/geometry.rb
CHANGED
@@ -262,16 +262,6 @@ module Vedeu
|
|
262
262
|
model.yn = value
|
263
263
|
end
|
264
264
|
|
265
|
-
protected
|
266
|
-
|
267
|
-
# @!attribute [r] client
|
268
|
-
# @return [Object]
|
269
|
-
attr_reader :client
|
270
|
-
|
271
|
-
# @!attribute [r] model
|
272
|
-
# @return [Vedeu::Geometry]
|
273
|
-
attr_reader :model
|
274
|
-
|
275
265
|
end # Geometry
|
276
266
|
|
277
267
|
end # DSL
|
data/lib/vedeu/dsl/group.rb
CHANGED
@@ -71,16 +71,6 @@ module Vedeu
|
|
71
71
|
model.add(interface_name)
|
72
72
|
end
|
73
73
|
|
74
|
-
protected
|
75
|
-
|
76
|
-
# @!attribute [r] client
|
77
|
-
# @return [Object]
|
78
|
-
attr_reader :client
|
79
|
-
|
80
|
-
# @!attribute [r] model
|
81
|
-
# @return [Vedeu::Group]
|
82
|
-
attr_reader :model
|
83
|
-
|
84
74
|
end # Group
|
85
75
|
|
86
76
|
end # DSL
|
data/lib/vedeu/dsl/interface.rb
CHANGED
@@ -307,26 +307,6 @@ module Vedeu
|
|
307
307
|
alias_method :z_index, :zindex
|
308
308
|
alias_method :z, :zindex
|
309
309
|
|
310
|
-
protected
|
311
|
-
|
312
|
-
# @!attribute [r] client
|
313
|
-
# @return [Object]
|
314
|
-
attr_reader :client
|
315
|
-
|
316
|
-
# @!attribute [r] model
|
317
|
-
# @return [Vedeu::Interface]
|
318
|
-
attr_reader :model
|
319
|
-
|
320
|
-
private
|
321
|
-
|
322
|
-
# @return [Hash]
|
323
|
-
def attributes
|
324
|
-
{
|
325
|
-
client: client,
|
326
|
-
parent: model,
|
327
|
-
}
|
328
|
-
end
|
329
|
-
|
330
310
|
end # Interface
|
331
311
|
|
332
312
|
end # DSL
|
data/lib/vedeu/dsl/keymap.rb
CHANGED
@@ -116,16 +116,6 @@ module Vedeu
|
|
116
116
|
model.name = value
|
117
117
|
end
|
118
118
|
|
119
|
-
protected
|
120
|
-
|
121
|
-
# @!attribute [r] client
|
122
|
-
# @return [Object]
|
123
|
-
attr_reader :client
|
124
|
-
|
125
|
-
# @!attribute [r] model
|
126
|
-
# @return [Vedeu::Keymap]
|
127
|
-
attr_reader :model
|
128
|
-
|
129
119
|
end # Keymap
|
130
120
|
|
131
121
|
end # DSL
|
data/lib/vedeu/dsl/line.rb
CHANGED
@@ -67,9 +67,9 @@ module Vedeu
|
|
67
67
|
parent: model.parent, &block)
|
68
68
|
|
69
69
|
elsif value
|
70
|
-
content = Vedeu::Views::Line.build(client:
|
71
|
-
parent:
|
72
|
-
|
70
|
+
content = Vedeu::Views::Line.build(client: client,
|
71
|
+
parent: model.parent,
|
72
|
+
value: [build_stream(value)])
|
73
73
|
|
74
74
|
else
|
75
75
|
fail Vedeu::InvalidSyntax, 'block not given'
|
@@ -107,26 +107,8 @@ module Vedeu
|
|
107
107
|
end
|
108
108
|
alias_method :stream, :streams
|
109
109
|
|
110
|
-
protected
|
111
|
-
|
112
|
-
# @!attribute [r] client
|
113
|
-
# @return [Object]
|
114
|
-
attr_reader :client
|
115
|
-
|
116
|
-
# @!attribute [r] model
|
117
|
-
# @return [Vedeu::Views::Line]
|
118
|
-
attr_reader :model
|
119
|
-
|
120
110
|
private
|
121
111
|
|
122
|
-
# @return [Hash]
|
123
|
-
def attributes
|
124
|
-
{
|
125
|
-
client: client,
|
126
|
-
parent: model,
|
127
|
-
}
|
128
|
-
end
|
129
|
-
|
130
112
|
# @param value [String]
|
131
113
|
# @return [Vedeu::Views::Stream]
|
132
114
|
def build_stream(value)
|
data/lib/vedeu/dsl/menu.rb
CHANGED
@@ -68,16 +68,6 @@ module Vedeu
|
|
68
68
|
model.name = value
|
69
69
|
end
|
70
70
|
|
71
|
-
protected
|
72
|
-
|
73
|
-
# @!attribute [r] client
|
74
|
-
# @return [Object]
|
75
|
-
attr_reader :client
|
76
|
-
|
77
|
-
# @!attribute [r] model
|
78
|
-
# @return [Vedeu::Menu]
|
79
|
-
attr_reader :model
|
80
|
-
|
81
71
|
end # Menu
|
82
72
|
|
83
73
|
end # DSL
|
data/lib/vedeu/dsl/stream.rb
CHANGED
@@ -29,18 +29,12 @@ module Vedeu
|
|
29
29
|
model.add(model.class.build(attributes, &block))
|
30
30
|
end
|
31
31
|
|
32
|
-
protected
|
33
|
-
|
34
|
-
# @!attribute [r] client
|
35
|
-
# @return [Object]
|
36
|
-
attr_reader :client
|
37
|
-
|
38
|
-
# @!attribute [r] model
|
39
|
-
# @return [Vedeu::Views::Stream]
|
40
|
-
attr_reader :model
|
41
|
-
|
42
32
|
private
|
43
33
|
|
34
|
+
# Returns the default attributes for the new model.
|
35
|
+
#
|
36
|
+
# Overrides {Vedeu::DSL#attributes}.
|
37
|
+
#
|
44
38
|
# @return [Hash]
|
45
39
|
def attributes
|
46
40
|
{
|
data/lib/vedeu/dsl/view.rb
CHANGED
@@ -250,26 +250,6 @@ module Vedeu
|
|
250
250
|
end
|
251
251
|
alias_method :line, :lines
|
252
252
|
|
253
|
-
protected
|
254
|
-
|
255
|
-
# @!attribute [r] client
|
256
|
-
# @return [Object]
|
257
|
-
attr_reader :client
|
258
|
-
|
259
|
-
# @!attribute [r] model
|
260
|
-
# @return [Vedeu::Views::View]
|
261
|
-
attr_reader :model
|
262
|
-
|
263
|
-
private
|
264
|
-
|
265
|
-
# @return [Hash]
|
266
|
-
def attributes
|
267
|
-
{
|
268
|
-
client: client,
|
269
|
-
parent: model,
|
270
|
-
}
|
271
|
-
end
|
272
|
-
|
273
253
|
end # View
|
274
254
|
|
275
255
|
end # DSL
|
@@ -89,19 +89,6 @@ module Vedeu
|
|
89
89
|
@attributes.each { |key, value| instance_variable_set("@#{key}", value) }
|
90
90
|
end
|
91
91
|
|
92
|
-
# Override Ruby's Object#inspect method to provide a more helpful output.
|
93
|
-
#
|
94
|
-
# @return [String]
|
95
|
-
def inspect
|
96
|
-
'<Vedeu::Geometry ' \
|
97
|
-
"x:#{x} " \
|
98
|
-
"xn:#{xn} " \
|
99
|
-
"y:#{y} " \
|
100
|
-
"yn:#{yn} " \
|
101
|
-
"centred:#{centred} " \
|
102
|
-
"maximise:#{maximised}>"
|
103
|
-
end
|
104
|
-
|
105
92
|
# Will maximise the named interface geometry. This means it will occupy all
|
106
93
|
# of the available space on the terminal window.
|
107
94
|
#
|
@@ -46,6 +46,17 @@ module Vedeu
|
|
46
46
|
@x = (x.nil? || x < 1) ? 1 : x
|
47
47
|
end
|
48
48
|
|
49
|
+
# Converts a position into an index for the terminal. An index is the
|
50
|
+
# position minus 1.
|
51
|
+
#
|
52
|
+
# @return [Array<Fixnum>]
|
53
|
+
def as_indices
|
54
|
+
xi = ((x - 1) <= 1) ? 0 : (x - 1)
|
55
|
+
yi = ((y - 1) <= 1) ? 0 : (y - 1)
|
56
|
+
|
57
|
+
[yi, xi]
|
58
|
+
end
|
59
|
+
|
49
60
|
# @param other [Vedeu::Position]
|
50
61
|
# @return [Fixnum]
|
51
62
|
def <=>(other)
|
data/lib/vedeu/models/escape.rb
CHANGED
@@ -34,13 +34,6 @@ module Vedeu
|
|
34
34
|
end
|
35
35
|
alias_method :==, :eql?
|
36
36
|
|
37
|
-
# Override Ruby's Object#inspect method to provide a more helpful output.
|
38
|
-
#
|
39
|
-
# @return [String]
|
40
|
-
def inspect
|
41
|
-
"<Vedeu::Escape '#{Vedeu::Esc.escape(to_s)}'>"
|
42
|
-
end
|
43
|
-
|
44
37
|
# @return [String]
|
45
38
|
def position
|
46
39
|
Vedeu::Position.coerce(@position)
|