vedeu 0.7.0 → 0.7.1
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/docs/borders.md +2 -2
- data/examples/284_slow_rendering.rb +2 -2
- data/examples/dsl_alignment.rb +9 -9
- data/examples/dsl_colours.rb +13 -13
- data/examples/dsl_editor.rb +10 -10
- data/lib/vedeu/borders/dsl.rb +84 -0
- data/lib/vedeu/buffers/empty.rb +3 -3
- data/lib/vedeu/buffers/terminal.rb +1 -1
- data/lib/vedeu/buffers/view.rb +1 -1
- data/lib/vedeu/cells/borders/all.rb +1 -0
- data/lib/vedeu/cells/borders/bottom_left.rb +1 -6
- data/lib/vedeu/cells/borders/bottom_right.rb +1 -6
- data/lib/vedeu/cells/borders/corner.rb +20 -0
- data/lib/vedeu/cells/borders/top_left.rb +1 -6
- data/lib/vedeu/cells/borders/top_right.rb +1 -6
- data/lib/vedeu/cells/empty.rb +22 -0
- data/lib/vedeu/cells/escape.rb +47 -0
- data/lib/vedeu/cursors/cursor.rb +6 -6
- data/lib/vedeu/dsl/text.rb +12 -1
- data/lib/vedeu/events/trigger.rb +4 -2
- data/lib/vedeu/input/capture.rb +1 -1
- data/lib/vedeu/input/mouse.rb +3 -2
- data/lib/vedeu/models/all.rb +0 -2
- data/lib/vedeu/models/row.rb +1 -1
- data/lib/vedeu/output/output.rb +8 -8
- data/lib/vedeu/output/text.rb +23 -2
- data/lib/vedeu/renderers/html.rb +4 -4
- data/lib/vedeu/runtime/launcher.rb +1 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/dsl_test.rb +40 -0
- data/test/lib/vedeu/buffers/empty_test.rb +1 -1
- data/test/lib/vedeu/cells/borders/bottom_left_test.rb +0 -14
- data/test/lib/vedeu/cells/borders/bottom_right_test.rb +0 -14
- data/test/lib/vedeu/cells/borders/corner_test.rb +57 -0
- data/test/lib/vedeu/cells/borders/top_left_test.rb +0 -14
- data/test/lib/vedeu/cells/borders/top_right_test.rb +0 -14
- data/test/lib/vedeu/cells/empty_test.rb +33 -0
- data/test/lib/vedeu/cells/escape_test.rb +74 -0
- data/test/lib/vedeu/cursors/cursor_test.rb +17 -11
- data/test/lib/vedeu/dsl/text_test.rb +1 -0
- data/test/lib/vedeu/models/row_test.rb +1 -1
- data/test/lib/vedeu/output/compressor_test.rb +2 -2
- data/test/lib/vedeu/output/output_test.rb +2 -2
- data/test/lib/vedeu/renderers/all_test.rb +2 -2
- data/test/lib/vedeu/renderers/terminal_test.rb +6 -6
- data/test/support/examples/material_colours_app.rb +13 -10
- metadata +4 -7
- data/lib/vedeu/models/cell.rb +0 -91
- data/lib/vedeu/models/escape.rb +0 -90
- data/test/lib/vedeu/models/cell_test.rb +0 -117
- data/test/lib/vedeu/models/escape_test.rb +0 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c9a714b2238fa3c5bbdeeccef8713918b40f4f5
|
4
|
+
data.tar.gz: 2f3dd1b000581dacd7f007347333fc5bc6028701
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e823c499c813c68bf11108eaf1c96de24ec984aff02afa56d240ca00fae273698b51d08b04c9fd85f730a78f9b7e713459b70cecd7316d6affa8e183fd669efb
|
7
|
+
data.tar.gz: 2b92ab94bf23c05680545fdb6e3a2beccda9484809a82b416ef04354e74d6f13113e031c1077ba7c716407c5c1485717a7a0955192890e00152f508ce04134c8
|
data/docs/borders.md
CHANGED
@@ -5,8 +5,8 @@ The interfaces of Vedeu can each have their own border.
|
|
5
5
|
|
6
6
|
- It has a name. This name associates it with an
|
7
7
|
{file:docs/interface.md Interface}.
|
8
|
-
- Each of its corners, the horizontal, and the vertical
|
9
|
-
be defined as different characters.
|
8
|
+
- Each of its corners, the horizontal, and the vertical characters can
|
9
|
+
be defined as different characters, with custom colours and styles.
|
10
10
|
- It can have a foreground and a background and style, independent of
|
11
11
|
the interface to which it belongs.
|
12
12
|
- Each of the sides of the border can be shown or hidden
|
@@ -58,9 +58,9 @@ class EditorApp
|
|
58
58
|
key(:enter) { Vedeu.trigger(:_editor_execute_, :editor_view) }
|
59
59
|
key(:insert) do
|
60
60
|
Vedeu.log(type: :debug,
|
61
|
-
message: "Commands: #{Vedeu.all_commands.inspect}")
|
61
|
+
message: "Commands: #{Vedeu.all_commands.inspect}".freeze)
|
62
62
|
Vedeu.log(type: :debug,
|
63
|
-
message: "Keypresses: #{Vedeu.all_keypresses.inspect}")
|
63
|
+
message: "Keypresses: #{Vedeu.all_keypresses.inspect}".freeze)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
data/examples/dsl_alignment.rb
CHANGED
@@ -100,55 +100,55 @@ class AlignmentApp
|
|
100
100
|
Vedeu.render do
|
101
101
|
view(:top_left_view) do
|
102
102
|
lines do
|
103
|
-
line "top left"
|
103
|
+
line "top left".freeze
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
107
|
view(:top_centre_view) do
|
108
108
|
lines do
|
109
|
-
line "top centre"
|
109
|
+
line "top centre".freeze
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
113
|
view(:top_right_view) do
|
114
114
|
lines do
|
115
|
-
line "top right"
|
115
|
+
line "top right".freeze
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
119
|
view(:middle_left_view) do
|
120
120
|
lines do
|
121
|
-
line "middle left"
|
121
|
+
line "middle left".freeze
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
125
|
view(:middle_centre_view) do
|
126
126
|
lines do
|
127
|
-
line "middle centre"
|
127
|
+
line "middle centre".freeze
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
131
|
view(:middle_right_view) do
|
132
132
|
lines do
|
133
|
-
line "middle right"
|
133
|
+
line "middle right".freeze
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
137
|
view(:bottom_left_view) do
|
138
138
|
lines do
|
139
|
-
line "bottom left"
|
139
|
+
line "bottom left".freeze
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
143
|
view(:bottom_centre_view) do
|
144
144
|
lines do
|
145
|
-
line "bottom centre"
|
145
|
+
line "bottom centre".freeze
|
146
146
|
end
|
147
147
|
end
|
148
148
|
|
149
149
|
view(:bottom_right_view) do
|
150
150
|
lines do
|
151
|
-
line "bottom right"
|
151
|
+
line "bottom right".freeze
|
152
152
|
end
|
153
153
|
end
|
154
154
|
end
|
data/examples/dsl_colours.rb
CHANGED
@@ -35,34 +35,34 @@ class ColoursApp
|
|
35
35
|
# line "test" - does not work, (wrong number of args for lines dsl/view.rb:240)
|
36
36
|
|
37
37
|
lines do
|
38
|
-
line "A line using interface colours."
|
38
|
+
line "A line using interface colours.".freeze
|
39
39
|
line ""
|
40
40
|
line do
|
41
41
|
stream do
|
42
|
-
text "Stream { "
|
43
|
-
text "background", background: '#001177'
|
44
|
-
text " }"
|
42
|
+
text "Stream { ".freeze
|
43
|
+
text "background".freeze, background: '#001177'
|
44
|
+
text " }".freeze
|
45
45
|
end
|
46
46
|
end
|
47
47
|
line do
|
48
48
|
stream do
|
49
|
-
text "Stream { "
|
50
|
-
text "foreground", foreground: '#aa00ff'
|
51
|
-
text " }"
|
49
|
+
text "Stream { ".freeze
|
50
|
+
text "foreground".freeze, foreground: '#aa00ff'
|
51
|
+
text " }".freeze
|
52
52
|
end
|
53
53
|
end
|
54
54
|
line do
|
55
55
|
stream do
|
56
|
-
text "Stream { "
|
57
|
-
text "background", background: '#117700'
|
58
|
-
text " }"
|
56
|
+
text "Stream { ".freeze
|
57
|
+
text "background".freeze, background: '#117700'
|
58
|
+
text " }".freeze
|
59
59
|
end
|
60
60
|
end
|
61
61
|
line do
|
62
62
|
stream do
|
63
|
-
text "Stream { "
|
64
|
-
text "foreground", foreground: '#00aaff'
|
65
|
-
text " }"
|
63
|
+
text "Stream { ".freeze
|
64
|
+
text "foreground".freeze, foreground: '#00aaff'
|
65
|
+
text " }".freeze
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
data/examples/dsl_editor.rb
CHANGED
@@ -9,8 +9,8 @@ class EditorApp
|
|
9
9
|
|
10
10
|
Vedeu.configure do
|
11
11
|
debug!
|
12
|
-
log '/tmp/editor.log'
|
13
|
-
renderers Vedeu::Renderers::File.new(filename: '/tmp/editor.out')
|
12
|
+
log '/tmp/editor.log'.freeze
|
13
|
+
renderers Vedeu::Renderers::File.new(filename: '/tmp/editor.out'.freeze)
|
14
14
|
fake!
|
15
15
|
end
|
16
16
|
|
@@ -49,14 +49,14 @@ class EditorApp
|
|
49
49
|
key(:enter) { Vedeu.trigger(:_editor_insert_line_, :editor_view) }
|
50
50
|
key(:insert) do
|
51
51
|
Vedeu.log(type: :debug,
|
52
|
-
message: "Commands: #{Vedeu.all_commands.inspect}")
|
52
|
+
message: "Commands: #{Vedeu.all_commands.inspect}".freeze)
|
53
53
|
Vedeu.log(type: :debug,
|
54
|
-
message: "Keypresses: #{Vedeu.all_keypresses.inspect}")
|
54
|
+
message: "Keypresses: #{Vedeu.all_keypresses.inspect}".freeze)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
Vedeu.keymap '_global_' do
|
59
|
-
key('q') { Vedeu.exit }
|
58
|
+
Vedeu.keymap '_global_'.freeze do
|
59
|
+
key('q'.freeze) { Vedeu.exit }
|
60
60
|
end
|
61
61
|
|
62
62
|
Vedeu.render do
|
@@ -67,10 +67,10 @@ class EditorApp
|
|
67
67
|
Vedeu.render do
|
68
68
|
view(:help_view) do
|
69
69
|
lines do
|
70
|
-
line 'Type into the editor dialog above,'
|
71
|
-
line 'and press Escape. This will trigger the'
|
72
|
-
line ':command event with the contents of '
|
73
|
-
line 'the view.'
|
70
|
+
line 'Type into the editor dialog above,'.freeze
|
71
|
+
line 'and press Escape. This will trigger the'.freeze
|
72
|
+
line ':command event with the contents of '.freeze
|
73
|
+
line 'the view.'.freeze
|
74
74
|
|
75
75
|
# @todo Not implemented yet:
|
76
76
|
#
|
data/lib/vedeu/borders/dsl.rb
CHANGED
@@ -110,6 +110,48 @@ module Vedeu
|
|
110
110
|
model.enabled
|
111
111
|
end
|
112
112
|
|
113
|
+
# Set the character to be used to draw the top horizontal part
|
114
|
+
# of the border.
|
115
|
+
#
|
116
|
+
# Vedeu.border :border_demo do
|
117
|
+
# top_horizontal '-'
|
118
|
+
# # ... some code
|
119
|
+
# end
|
120
|
+
#
|
121
|
+
# @param char [String] Character to be used as the top
|
122
|
+
# horizontal border character.
|
123
|
+
# @param options [Hash<Symbol => Hash<Symbol => String>|String|
|
124
|
+
# Symbol]
|
125
|
+
# @option options colour [Hash<Symbol => String>]
|
126
|
+
# @option options style [String|Symbol]
|
127
|
+
# @return [String]
|
128
|
+
def top_horizontal(char, options = {})
|
129
|
+
model.top_horizontal = Vedeu::Cells::TopHorizontal
|
130
|
+
.new(attrs(char, options))
|
131
|
+
end
|
132
|
+
alias_method :top_horizontal=, :top_horizontal
|
133
|
+
|
134
|
+
# Set the character to be used to draw the bottom horizontal
|
135
|
+
# part of the border.
|
136
|
+
#
|
137
|
+
# Vedeu.border :border_demo do
|
138
|
+
# bottom_horizontal '-'
|
139
|
+
# # ... some code
|
140
|
+
# end
|
141
|
+
#
|
142
|
+
# @param char [String] Character to be used as the bottom
|
143
|
+
# horizontal border character.
|
144
|
+
# @param options [Hash<Symbol => Hash<Symbol => String>|String|
|
145
|
+
# Symbol]
|
146
|
+
# @option options colour [Hash<Symbol => String>]
|
147
|
+
# @option options style [String|Symbol]
|
148
|
+
# @return [String]
|
149
|
+
def bottom_horizontal(char, options = {})
|
150
|
+
model.bottom_horizontal = Vedeu::Cells::BottomHorizontal
|
151
|
+
.new(attrs(char, options))
|
152
|
+
end
|
153
|
+
alias_method :bottom_horizontal=, :bottom_horizontal
|
154
|
+
|
113
155
|
# Set the character to be used to draw a horizontal part of the
|
114
156
|
# border.
|
115
157
|
#
|
@@ -350,6 +392,48 @@ module Vedeu
|
|
350
392
|
end
|
351
393
|
alias_method :top_right=, :top_right
|
352
394
|
|
395
|
+
# Set the character to be used to draw the left vertical part of
|
396
|
+
# the border.
|
397
|
+
#
|
398
|
+
# Vedeu.border :border_demo do
|
399
|
+
# left_vertical '|'
|
400
|
+
# # ... some code
|
401
|
+
# end
|
402
|
+
#
|
403
|
+
# @param char [String] Character to be used as the left vertical
|
404
|
+
# border character.
|
405
|
+
# @param options [Hash<Symbol => Hash<Symbol => String>|String|
|
406
|
+
# Symbol]
|
407
|
+
# @option options colour [Hash<Symbol => String>]
|
408
|
+
# @option options style [String|Symbol]
|
409
|
+
# @return [String]
|
410
|
+
def left_vertical(char, options = {})
|
411
|
+
model.left_vertical = Vedeu::Cells::LeftVertical
|
412
|
+
.new(attrs(char, options))
|
413
|
+
end
|
414
|
+
alias_method :left_vertical=, :left_vertical
|
415
|
+
|
416
|
+
# Set the character to be used to draw the right vertical part
|
417
|
+
# of the border.
|
418
|
+
#
|
419
|
+
# Vedeu.border :border_demo do
|
420
|
+
# right_vertical '|'
|
421
|
+
# # ... some code
|
422
|
+
# end
|
423
|
+
#
|
424
|
+
# @param char [String] Character to be used as the right
|
425
|
+
# vertical border character.
|
426
|
+
# @param options [Hash<Symbol => Hash<Symbol => String>|String|
|
427
|
+
# Symbol]
|
428
|
+
# @option options colour [Hash<Symbol => String>]
|
429
|
+
# @option options style [String|Symbol]
|
430
|
+
# @return [String]
|
431
|
+
def right_vertical(char, options = {})
|
432
|
+
model.right_vertical = Vedeu::Cells::RightVertical
|
433
|
+
.new(attrs(char, options))
|
434
|
+
end
|
435
|
+
alias_method :right_vertical=, :right_vertical
|
436
|
+
|
353
437
|
# Set the character to be used to draw a vertical part of the
|
354
438
|
# border.
|
355
439
|
#
|
data/lib/vedeu/buffers/empty.rb
CHANGED
@@ -2,7 +2,7 @@ module Vedeu
|
|
2
2
|
|
3
3
|
module Buffers
|
4
4
|
|
5
|
-
# Provides a grid of Vedeu::
|
5
|
+
# Provides a grid of Vedeu::Cells::Empty objects at the given
|
6
6
|
# height and width.
|
7
7
|
#
|
8
8
|
# @api private
|
@@ -14,12 +14,12 @@ module Vedeu
|
|
14
14
|
# @return [NilClass|String|Symbol]
|
15
15
|
attr_reader :name
|
16
16
|
|
17
|
-
# @return [Array<Array<Vedeu::
|
17
|
+
# @return [Array<Array<Vedeu::Cells::Empty>>]
|
18
18
|
def buffer
|
19
19
|
Array.new(height) do |y|
|
20
20
|
if y > 0
|
21
21
|
Array.new(width) do |x|
|
22
|
-
Vedeu::
|
22
|
+
Vedeu::Cells::Empty.new(name: name, position: [y, x]) if x > 0
|
23
23
|
end.compact
|
24
24
|
end
|
25
25
|
end.compact
|
data/lib/vedeu/buffers/view.rb
CHANGED
@@ -7,12 +7,7 @@ module Vedeu
|
|
7
7
|
#
|
8
8
|
# @api private
|
9
9
|
#
|
10
|
-
class BottomLeft < Vedeu::Cells::
|
11
|
-
|
12
|
-
# @return [Vedeu::Geometries::Position]
|
13
|
-
def position
|
14
|
-
@position = defaults[:position]
|
15
|
-
end
|
10
|
+
class BottomLeft < Vedeu::Cells::Corner
|
16
11
|
|
17
12
|
# @return [Symbol]
|
18
13
|
def type
|
@@ -7,12 +7,7 @@ module Vedeu
|
|
7
7
|
#
|
8
8
|
# @api private
|
9
9
|
#
|
10
|
-
class BottomRight < Vedeu::Cells::
|
11
|
-
|
12
|
-
# @return [Vedeu::Geometries::Position]
|
13
|
-
def position
|
14
|
-
@position = defaults[:position]
|
15
|
-
end
|
10
|
+
class BottomRight < Vedeu::Cells::Corner
|
16
11
|
|
17
12
|
# @return [Symbol]
|
18
13
|
def type
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Vedeu
|
2
|
+
|
3
|
+
module Cells
|
4
|
+
|
5
|
+
# Provides the position information to draw a border corner.
|
6
|
+
#
|
7
|
+
# @api private
|
8
|
+
#
|
9
|
+
class Corner < Vedeu::Cells::Border
|
10
|
+
|
11
|
+
# @return [Vedeu::Geometries::Position]
|
12
|
+
def position
|
13
|
+
@position = defaults[:position]
|
14
|
+
end
|
15
|
+
|
16
|
+
end # Corner
|
17
|
+
|
18
|
+
end # Cells
|
19
|
+
|
20
|
+
end # Vedeu
|
@@ -7,12 +7,7 @@ module Vedeu
|
|
7
7
|
#
|
8
8
|
# @api private
|
9
9
|
#
|
10
|
-
class TopLeft < Vedeu::Cells::
|
11
|
-
|
12
|
-
# @return [Vedeu::Geometries::Position]
|
13
|
-
def position
|
14
|
-
@position = defaults[:position]
|
15
|
-
end
|
10
|
+
class TopLeft < Vedeu::Cells::Corner
|
16
11
|
|
17
12
|
# @return [Symbol]
|
18
13
|
def type
|
@@ -7,12 +7,7 @@ module Vedeu
|
|
7
7
|
#
|
8
8
|
# @api private
|
9
9
|
#
|
10
|
-
class TopRight < Vedeu::Cells::
|
11
|
-
|
12
|
-
# @return [Vedeu::Geometries::Position]
|
13
|
-
def position
|
14
|
-
@position = defaults[:position]
|
15
|
-
end
|
10
|
+
class TopRight < Vedeu::Cells::Corner
|
16
11
|
|
17
12
|
# @return [Symbol]
|
18
13
|
def type
|
data/lib/vedeu/cells/empty.rb
CHANGED
@@ -43,6 +43,28 @@ module Vedeu
|
|
43
43
|
end
|
44
44
|
alias_method :==, :eql?
|
45
45
|
|
46
|
+
# @return [Hash]
|
47
|
+
def to_hash
|
48
|
+
{
|
49
|
+
colour: colour.to_s,
|
50
|
+
style: style.to_s,
|
51
|
+
value: value.to_s,
|
52
|
+
position: position.to_s,
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
# @param _options [Hash] Ignored.
|
57
|
+
# @return [String]
|
58
|
+
def to_html(_options = {})
|
59
|
+
''
|
60
|
+
end
|
61
|
+
|
62
|
+
# @return [String]
|
63
|
+
def to_s
|
64
|
+
value.to_s
|
65
|
+
end
|
66
|
+
alias_method :to_str, :to_s
|
67
|
+
|
46
68
|
private
|
47
69
|
|
48
70
|
# @return [Hash<Symbol => Hash<void>|NilClass|String>]
|