vedeu 0.6.68 → 0.6.69
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +34 -66
- data/docs/api.md +3 -3
- data/docs/borders.md +3 -3
- data/docs/cursors.md +109 -10
- data/docs/debugging.md +2 -2
- data/docs/dsl.md +2 -2
- data/docs/events/application.md +1 -1
- data/docs/events/document.md +9 -9
- data/docs/events/drb.md +7 -7
- data/docs/events/focus.md +3 -3
- data/docs/events/menu.md +10 -10
- data/docs/events/movement.md +5 -3
- data/docs/events/refresh.md +5 -5
- data/docs/events/system.md +8 -8
- data/docs/events/view.md +4 -4
- data/docs/events/visibility.md +10 -32
- data/docs/input.md +1 -1
- data/lib/vedeu/colours/background.rb +4 -9
- data/lib/vedeu/colours/foreground.rb +4 -9
- data/lib/vedeu/colours/translator.rb +8 -3
- data/lib/vedeu/cursors/all.rb +1 -0
- data/lib/vedeu/{geometries → cursors}/coordinate.rb +4 -4
- data/lib/vedeu/cursors/cursor.rb +10 -10
- data/lib/vedeu/cursors/dsl.rb +3 -27
- data/lib/vedeu/cursors/reposition.rb +4 -4
- data/lib/vedeu/esc/esc.rb +13 -17
- data/lib/vedeu/geometries/{alignment.rb → alignment/alignment.rb} +0 -0
- data/lib/vedeu/geometries/alignment/all.rb +11 -0
- data/lib/vedeu/geometries/{horizontal_alignment.rb → alignment/horizontal_alignment.rb} +0 -0
- data/lib/vedeu/geometries/{vertical_alignment.rb → alignment/vertical_alignment.rb} +0 -0
- data/lib/vedeu/geometries/all.rb +4 -12
- data/lib/vedeu/geometries/area/all.rb +12 -0
- data/lib/vedeu/geometries/{area.rb → area/area.rb} +0 -0
- data/lib/vedeu/geometries/{dimension.rb → area/dimension.rb} +0 -0
- data/lib/vedeu/geometries/{x_dimension.rb → area/x_dimension.rb} +0 -0
- data/lib/vedeu/geometries/{y_dimension.rb → area/y_dimension.rb} +0 -0
- data/lib/vedeu/geometries/dsl/all.rb +11 -0
- data/lib/vedeu/geometries/{dsl.rb → dsl/dsl.rb} +0 -0
- data/lib/vedeu/geometries/{grid.rb → dsl/grid.rb} +0 -0
- data/lib/vedeu/geometries/{validator.rb → dsl/validator.rb} +0 -0
- data/lib/vedeu/input/raw.rb +5 -0
- data/lib/vedeu/input/read.rb +2 -2
- data/lib/vedeu/output/compressor.rb +1 -1
- data/lib/vedeu/output/compressor_cache.rb +7 -0
- data/lib/vedeu/terminal/terminal.rb +4 -4
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/{geometries/coordinate.rb → cursors/coordinate_test.rb} +4 -4
- data/test/lib/vedeu/esc/esc_test.rb +18 -0
- data/test/lib/vedeu/geometries/{alignment_test.rb → alignment/alignment_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{horizontal_alignment_test.rb → alignment/horizontal_alignment_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{vertical_alignment_test.rb → alignment/vertical_alignment_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{area_test.rb → area/area_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{dimension_test.rb → area/dimension_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{x_dimension_test.rb → area/x_dimension_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{y_dimension_test.rb → area/y_dimension_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{dsl_test.rb → dsl/dsl_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{grid_test.rb → dsl/grid_test.rb} +0 -0
- data/test/lib/vedeu/geometries/{validator_test.rb → dsl/validator_test.rb} +0 -0
- data/vedeu.gemspec +2 -2
- metadata +42 -39
@@ -168,7 +168,7 @@ module Vedeu
|
|
168
168
|
#
|
169
169
|
# @return [String]
|
170
170
|
def numbered
|
171
|
-
"#{
|
171
|
+
"#{prefix}5;#{css_to_numbered}m".freeze
|
172
172
|
end
|
173
173
|
|
174
174
|
# Returns a boolean indicated whether the colour is a valid
|
@@ -200,6 +200,13 @@ module Vedeu
|
|
200
200
|
end
|
201
201
|
end
|
202
202
|
|
203
|
+
# Returns part of an escape sequence.
|
204
|
+
#
|
205
|
+
# @return [String]
|
206
|
+
def rgb_prefix
|
207
|
+
"#{prefix}2;%s;%s;%sm".freeze
|
208
|
+
end
|
209
|
+
|
203
210
|
# Returns a boolean indicating whether the numbered colour is
|
204
211
|
# within the range of valid terminal numbered colours.
|
205
212
|
#
|
@@ -266,9 +273,7 @@ module Vedeu
|
|
266
273
|
fail Vedeu::Error::NotImplemented, 'Subclasses implement this.'.freeze
|
267
274
|
end
|
268
275
|
alias_method :named_codes, :not_implemented
|
269
|
-
alias_method :numbered_prefix, :not_implemented
|
270
276
|
alias_method :repository, :not_implemented
|
271
|
-
alias_method :rgb_prefix, :not_implemented
|
272
277
|
|
273
278
|
end # Translator
|
274
279
|
|
data/lib/vedeu/cursors/all.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Vedeu
|
2
2
|
|
3
|
-
module
|
3
|
+
module Cursors
|
4
4
|
|
5
5
|
# Crudely corrects out of range values.
|
6
6
|
#
|
@@ -8,13 +8,13 @@ module Vedeu
|
|
8
8
|
#
|
9
9
|
class Coordinate
|
10
10
|
|
11
|
-
# Return a new instance of Vedeu::
|
11
|
+
# Return a new instance of Vedeu::Cursors::Coordinate.
|
12
12
|
#
|
13
13
|
# @param attributes [Hash<Symbol => Fixnum|String|Symbol>]
|
14
14
|
# @option attributes name [String|Symbol]
|
15
15
|
# @option attributes type [Symbol]
|
16
16
|
# @option attributes offset [Fixnum]
|
17
|
-
# @return [Vedeu::
|
17
|
+
# @return [Vedeu::Cursors::Coordinate]
|
18
18
|
def initialize(attributes = {})
|
19
19
|
defaults.merge!(attributes).each do |key, value|
|
20
20
|
instance_variable_set("@#{key}", value)
|
@@ -172,6 +172,6 @@ module Vedeu
|
|
172
172
|
|
173
173
|
end # Coordinate
|
174
174
|
|
175
|
-
end #
|
175
|
+
end # Cursors
|
176
176
|
|
177
177
|
end # Vedeu
|
data/lib/vedeu/cursors/cursor.rb
CHANGED
@@ -264,11 +264,11 @@ module Vedeu
|
|
264
264
|
|
265
265
|
# Determine correct x and y related coordinates.
|
266
266
|
#
|
267
|
-
# @return [Vedeu::
|
267
|
+
# @return [Vedeu::Cursors::Coordinate]
|
268
268
|
def coordinate(offset, type)
|
269
|
-
Vedeu::
|
270
|
-
|
271
|
-
|
269
|
+
Vedeu::Cursors::Coordinate.new(name: name,
|
270
|
+
offset: offset,
|
271
|
+
type: type)
|
272
272
|
end
|
273
273
|
|
274
274
|
# The default values for a new instance of this class.
|
@@ -335,15 +335,15 @@ module Vedeu
|
|
335
335
|
|
336
336
|
# :nocov:
|
337
337
|
|
338
|
-
# See {file:docs/
|
338
|
+
# See {file:docs/cursors.md#vedeuhide_cursor__}
|
339
339
|
Vedeu.bind(:_hide_cursor_) { |name| Vedeu.hide_cursor(name) }
|
340
|
-
|
340
|
+
Vedeu.bind_alias(:_cursor_hide_, :_hide_cursor_)
|
341
341
|
|
342
|
-
# See {file:docs/
|
342
|
+
# See {file:docs/cursors.md#vedeushow_cursor__}
|
343
343
|
Vedeu.bind(:_show_cursor_) { |name| Vedeu.show_cursor(name) }
|
344
|
-
|
344
|
+
Vedeu.bind_alias(:_cursor_show_, :_show_cursor_)
|
345
345
|
|
346
|
-
# See {file:docs/
|
346
|
+
# See {file:docs/cursors.md#vedeutoggle_cursor__}
|
347
347
|
Vedeu.bind(:_toggle_cursor_) { |name| Vedeu.toggle_cursor(name) }
|
348
348
|
|
349
349
|
# See {file:docs/cursors.md}
|
@@ -380,7 +380,7 @@ module Vedeu
|
|
380
380
|
|
381
381
|
Vedeu.trigger(:_refresh_cursor_, name)
|
382
382
|
end
|
383
|
-
|
383
|
+
Vedeu.bind_alias(:_cursor_reset_, :_cursor_origin_)
|
384
384
|
|
385
385
|
# See {file:docs/cursors.md}
|
386
386
|
Vedeu.bind(:_cursor_position_) do |name|
|
data/lib/vedeu/cursors/dsl.rb
CHANGED
@@ -4,38 +4,14 @@ module Vedeu
|
|
4
4
|
|
5
5
|
# Control the visibility of the cursor for each interface/view.
|
6
6
|
#
|
7
|
+
# See {file:docs/cursors.md#interface_cursors}
|
8
|
+
# See {file:docs/cursors.md#view_cursors}
|
7
9
|
module DSL
|
8
10
|
|
9
11
|
# Set the cursor visibility on an interface.
|
10
12
|
#
|
11
13
|
# @param value [Boolean] Any value other than nil or false will
|
12
|
-
# evaluate
|
13
|
-
# to true.
|
14
|
-
#
|
15
|
-
# @example
|
16
|
-
# Vedeu.interface :my_interface do
|
17
|
-
# cursor true # => show the cursor for this interface
|
18
|
-
# # or...
|
19
|
-
# cursor :show # => both of these are equivalent to line
|
20
|
-
# # above
|
21
|
-
# # or...
|
22
|
-
# cursor! #
|
23
|
-
# # ...
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
# Vedeu.interface :my_interface do
|
27
|
-
# cursor false # => hide the cursor for this interface
|
28
|
-
# # or...
|
29
|
-
# cursor nil # => as above
|
30
|
-
# # ...
|
31
|
-
# end
|
32
|
-
#
|
33
|
-
# Vedeu.view :my_interface do
|
34
|
-
# cursor true # => Specify the visibility of the cursor when
|
35
|
-
# # the view is rendered.
|
36
|
-
# # ...
|
37
|
-
# end
|
38
|
-
#
|
14
|
+
# evaluate to true.
|
39
15
|
# @return [Vedeu::Cursors::Cursor]
|
40
16
|
def cursor(value = true)
|
41
17
|
boolean = value ? true : false
|
@@ -67,11 +67,11 @@ module Vedeu
|
|
67
67
|
#
|
68
68
|
# @param offset []
|
69
69
|
# @param type []
|
70
|
-
# @return [Vedeu::
|
70
|
+
# @return [Vedeu::Cursors::Coordinate]
|
71
71
|
def coordinate(offset, type)
|
72
|
-
Vedeu::
|
73
|
-
|
74
|
-
|
72
|
+
Vedeu::Cursors::Coordinate.new(name: name,
|
73
|
+
offset: offset,
|
74
|
+
type: type)
|
75
75
|
end
|
76
76
|
|
77
77
|
# @return [Vedeu::Cursors::Cursor]
|
data/lib/vedeu/esc/esc.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
require 'vedeu/esc/actions'
|
2
|
-
require 'vedeu/esc/borders'
|
3
|
-
require 'vedeu/esc/colours'
|
4
|
-
|
5
1
|
module Vedeu
|
6
2
|
|
7
3
|
module EscapeSequences
|
@@ -57,13 +53,24 @@ module Vedeu
|
|
57
53
|
"#{border_on}#{yield}#{border_off}".freeze
|
58
54
|
end
|
59
55
|
|
60
|
-
private
|
61
|
-
|
62
56
|
# @return [String]
|
63
57
|
def clear
|
64
58
|
"#{colour_reset}\e[2J".freeze
|
65
59
|
end
|
66
60
|
|
61
|
+
# @return [String]
|
62
|
+
def screen_init
|
63
|
+
"#{reset}#{clear}#{hide_cursor}#{enable_mouse}".freeze
|
64
|
+
end
|
65
|
+
|
66
|
+
# @return [String]
|
67
|
+
def screen_exit
|
68
|
+
"#{disable_mouse}#{show_cursor}#{screen_colour_reset}#{reset}" \
|
69
|
+
"#{last_character_position}\n".freeze
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
67
74
|
# @return [String]
|
68
75
|
def clear_line
|
69
76
|
"#{colour_reset}\e[2K".freeze
|
@@ -101,22 +108,11 @@ module Vedeu
|
|
101
108
|
"#{underline_off}#{bold_off}#{positive}".freeze
|
102
109
|
end
|
103
110
|
|
104
|
-
# @return [String]
|
105
|
-
def screen_init
|
106
|
-
"#{reset}#{clear}#{hide_cursor}#{enable_mouse}".freeze
|
107
|
-
end
|
108
|
-
|
109
111
|
# @return [String]
|
110
112
|
def screen_colour_reset
|
111
113
|
"#{fg_reset}#{bg_reset}".freeze
|
112
114
|
end
|
113
115
|
|
114
|
-
# @return [String]
|
115
|
-
def screen_exit
|
116
|
-
"#{disable_mouse}#{show_cursor}#{screen_colour_reset}#{reset}" \
|
117
|
-
"#{last_character_position}\n".freeze
|
118
|
-
end
|
119
|
-
|
120
116
|
# @return [String]
|
121
117
|
def last_character_position
|
122
118
|
Vedeu::Geometries::Position[Vedeu.height, Vedeu.width].to_s
|
File without changes
|
File without changes
|
File without changes
|
data/lib/vedeu/geometries/all.rb
CHANGED
@@ -13,19 +13,11 @@ module Vedeu
|
|
13
13
|
|
14
14
|
end # Vedeu
|
15
15
|
|
16
|
-
require 'vedeu/geometries/alignment'
|
17
|
-
require 'vedeu/geometries/
|
18
|
-
require 'vedeu/geometries/
|
19
|
-
|
20
|
-
require 'vedeu/geometries/coordinate'
|
21
|
-
require 'vedeu/geometries/dimension'
|
22
|
-
require 'vedeu/geometries/x_dimension'
|
23
|
-
require 'vedeu/geometries/y_dimension'
|
24
|
-
require 'vedeu/geometries/validator'
|
25
|
-
require 'vedeu/geometries/dsl'
|
26
|
-
require 'vedeu/geometries/coordinate'
|
16
|
+
require 'vedeu/geometries/alignment/all'
|
17
|
+
require 'vedeu/geometries/area/all'
|
18
|
+
require 'vedeu/geometries/dsl/all'
|
19
|
+
|
27
20
|
require 'vedeu/geometries/geometry'
|
28
|
-
require 'vedeu/geometries/grid'
|
29
21
|
require 'vedeu/geometries/move'
|
30
22
|
require 'vedeu/geometries/position'
|
31
23
|
require 'vedeu/geometries/repository'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/vedeu/input/raw.rb
CHANGED
data/lib/vedeu/input/read.rb
CHANGED
@@ -78,12 +78,12 @@ module Vedeu
|
|
78
78
|
|
79
79
|
# @return [String]
|
80
80
|
def mouse_off
|
81
|
-
Vedeu::EscapeSequences::Esc.
|
81
|
+
Vedeu::EscapeSequences::Esc.mouse_x10_off
|
82
82
|
end
|
83
83
|
|
84
84
|
# @return [String]
|
85
85
|
def show_cursor
|
86
|
-
Vedeu::EscapeSequences::Esc.
|
86
|
+
Vedeu::EscapeSequences::Esc.show_cursor
|
87
87
|
end
|
88
88
|
|
89
89
|
# @return [String]
|
@@ -61,6 +61,7 @@ module Vedeu
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
# @return [Array<void>|String]
|
64
65
|
def cached
|
65
66
|
cached_original = Vedeu::Output::CompressorCache.read(:original)
|
66
67
|
cached_compressed = Vedeu::Output::CompressorCache.read(:compressed)
|
@@ -91,7 +92,6 @@ module Vedeu
|
|
91
92
|
].join
|
92
93
|
end.join
|
93
94
|
|
94
|
-
|
95
95
|
Vedeu.log(type: :compress,
|
96
96
|
message: "#{message} -> #{out.size} characters".freeze)
|
97
97
|
|
@@ -2,6 +2,13 @@ module Vedeu
|
|
2
2
|
|
3
3
|
module Output
|
4
4
|
|
5
|
+
# Store a copy of the data last processed by
|
6
|
+
# {Vedeu::Output::Compressor}. Both the original content and the
|
7
|
+
# compressed versions are kept (unless modified) to speed up the
|
8
|
+
# rendering of the display.
|
9
|
+
#
|
10
|
+
# @api private
|
11
|
+
#
|
5
12
|
module CompressorCache
|
6
13
|
|
7
14
|
extend self
|
@@ -60,7 +60,7 @@ module Vedeu
|
|
60
60
|
def initialize_screen(mode)
|
61
61
|
Vedeu.log(message: "Terminal entering '#{mode}' mode".freeze)
|
62
62
|
|
63
|
-
output(Vedeu::EscapeSequences::Esc.
|
63
|
+
output(Vedeu::EscapeSequences::Esc.screen_init)
|
64
64
|
|
65
65
|
yield if block_given?
|
66
66
|
end
|
@@ -72,7 +72,7 @@ module Vedeu
|
|
72
72
|
#
|
73
73
|
# @return [String]
|
74
74
|
def clear
|
75
|
-
output(Vedeu::EscapeSequences::Esc.
|
75
|
+
output(Vedeu::EscapeSequences::Esc.clear)
|
76
76
|
end
|
77
77
|
|
78
78
|
# Attempts to tidy up the screen just before the application
|
@@ -82,7 +82,7 @@ module Vedeu
|
|
82
82
|
#
|
83
83
|
# @return [String]
|
84
84
|
def restore_screen
|
85
|
-
output(Vedeu::EscapeSequences::Esc.
|
85
|
+
output(Vedeu::EscapeSequences::Esc.screen_exit)
|
86
86
|
end
|
87
87
|
|
88
88
|
# Sets the cursor to be visible unless in raw mode, whereby it
|
@@ -90,7 +90,7 @@ module Vedeu
|
|
90
90
|
#
|
91
91
|
# @return [String]
|
92
92
|
def set_cursor_mode
|
93
|
-
output(Vedeu::EscapeSequences::Esc.
|
93
|
+
output(Vedeu::EscapeSequences::Esc.show_cursor) unless raw_mode?
|
94
94
|
end
|
95
95
|
|
96
96
|
# Returns a coordinate tuple of the format [y, x], where `y` is
|
data/lib/vedeu/version.rb
CHANGED
@@ -2,11 +2,11 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Vedeu
|
4
4
|
|
5
|
-
module
|
5
|
+
module Cursors
|
6
6
|
|
7
7
|
describe Coordinate do
|
8
8
|
|
9
|
-
let(:described) { Vedeu::
|
9
|
+
let(:described) { Vedeu::Cursors::Coordinate }
|
10
10
|
let(:instance) { described.new(attributes) }
|
11
11
|
let(:attributes) {
|
12
12
|
{
|
@@ -38,7 +38,7 @@ module Vedeu
|
|
38
38
|
# it { skip }
|
39
39
|
end
|
40
40
|
|
41
|
-
# let(:described) { Vedeu::
|
41
|
+
# let(:described) { Vedeu::Cursors::Coordinate }
|
42
42
|
# let(:instance) { described.new(_name, oy, ox) }
|
43
43
|
# let(:_name) { 'coordinate' }
|
44
44
|
# let(:oy) { 0 }
|
@@ -162,6 +162,6 @@ module Vedeu
|
|
162
162
|
|
163
163
|
end # Coordinate
|
164
164
|
|
165
|
-
end #
|
165
|
+
end # Cursors
|
166
166
|
|
167
167
|
end # Vedeu
|