vedeu 0.6.61 → 0.6.62
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/benchmarks/array_vs_range.rb +1 -1
- data/docs/events/drb.md +2 -2
- data/docs/events/visibility.md +1 -1
- data/lib/vedeu/buffers/all.rb +1 -0
- data/lib/vedeu/buffers/empty.rb +2 -2
- data/lib/vedeu/{terminal/buffer.rb → buffers/terminal.rb} +12 -16
- data/lib/vedeu/cursors/cursor.rb +4 -8
- data/lib/vedeu/cursors/refresh.rb +5 -0
- data/lib/vedeu/editor/all.rb +1 -0
- data/lib/vedeu/editor/collection.rb +26 -0
- data/lib/vedeu/editor/document.rb +0 -8
- data/lib/vedeu/editor/line.rb +17 -47
- data/lib/vedeu/editor/lines.rb +22 -51
- data/lib/vedeu/geometries/geometry.rb +0 -6
- data/lib/vedeu/groups/group.rb +0 -6
- data/lib/vedeu/input/capture.rb +1 -1
- data/lib/vedeu/interfaces/clear.rb +1 -1
- data/lib/vedeu/logging/log.rb +5 -2
- data/lib/vedeu/models/focus.rb +4 -13
- data/lib/vedeu/output/compressor.rb +8 -4
- data/lib/vedeu/output/output.rb +3 -3
- data/lib/vedeu/output/renderers/all.rb +2 -2
- data/lib/vedeu/output/renderers/html.rb +1 -1
- data/lib/vedeu/output/renderers/json.rb +1 -1
- data/lib/vedeu/repositories/all.rb +1 -0
- data/lib/vedeu/repositories/assemblage.rb +57 -0
- data/lib/vedeu/repositories/collection.rb +1 -40
- data/lib/vedeu/repositories/model.rb +17 -0
- data/lib/vedeu/runtime/launcher.rb +5 -8
- data/lib/vedeu/terminal/all.rb +0 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/{terminal/buffer_test.rb → buffers/terminal_test.rb} +24 -50
- data/test/lib/vedeu/cursors/cursor_test.rb +0 -6
- data/test/lib/vedeu/editor/collection_test.rb +38 -0
- data/test/lib/vedeu/editor/document_test.rb +0 -16
- data/test/lib/vedeu/editor/line_test.rb +17 -75
- data/test/lib/vedeu/editor/lines_test.rb +21 -88
- data/test/lib/vedeu/geometries/geometry_test.rb +0 -6
- data/test/lib/vedeu/groups/group_test.rb +0 -6
- data/test/lib/vedeu/input/mouse_test.rb +1 -1
- data/test/lib/vedeu/logging/log_test.rb +3 -3
- data/test/lib/vedeu/models/focus_test.rb +62 -56
- data/test/lib/vedeu/output/output_test.rb +2 -2
- data/test/lib/vedeu/output/renderers/html_test.rb +2 -2
- data/test/lib/vedeu/output/renderers/json_test.rb +1 -1
- data/test/lib/vedeu/repositories/assemblage_test.rb +96 -0
- data/test/lib/vedeu/repositories/collection_test.rb +0 -54
- data/test/lib/vedeu/repositories/model_test.rb +15 -0
- data/vedeu.gemspec +1 -1
- metadata +13 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 161b51ae0f6dddf89fe026875fa21b5bcbef0b63
|
4
|
+
data.tar.gz: f724c3d3b35f703f2ba58800123628837fd7a8fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66121dcb5d8c27bc23a7ec695a2eecf360dfe0946f7f0cb3cf85eb39682f6a0a683d14328987e3858807a8a3fbf75c3a440565ad0aa39c80d76eea9eea263396
|
7
|
+
data.tar.gz: c21adb2837c843bbb19a8b60ced2f19fa76835417ed86a15f769153c9e212f5a8b98133a5cf47446a4ab1a212971bff37321f360c2697f7849f258abece2654b
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# To test the suitability of using a range to determine a valid
|
4
4
|
# coordinate instead of the current array method as used in
|
5
|
-
# Vedeu::Terminal
|
5
|
+
# Vedeu::Buffers::Terminal#within_terminal_boundary?
|
6
6
|
#
|
7
7
|
# vedeu/benchmarks:spike/benchmarking$ ./array_vs_range.rb
|
8
8
|
# Calculating -------------------------------------
|
data/docs/events/drb.md
CHANGED
@@ -11,10 +11,10 @@ Note: See {Vedeu::Distributed::Server#input} for parameter details.
|
|
11
11
|
Vedeu.trigger(:_drb_input_, data, type)
|
12
12
|
|
13
13
|
### `:\_drb_retrieve_output\_`
|
14
|
-
See {Vedeu::Terminal
|
14
|
+
See {Vedeu::Buffers::Terminal#output}
|
15
15
|
|
16
16
|
### `:\_drb_store_output\_`
|
17
|
-
See {Vedeu::Terminal
|
17
|
+
See {Vedeu::Buffers::Terminal#write}
|
18
18
|
|
19
19
|
### `:\_drb_restart\_`
|
20
20
|
Use the DRb server to request the client application to restart.
|
data/docs/events/visibility.md
CHANGED
data/lib/vedeu/buffers/all.rb
CHANGED
data/lib/vedeu/buffers/empty.rb
CHANGED
@@ -17,9 +17,9 @@ module Vedeu
|
|
17
17
|
# @return [Array<Array<Vedeu::Models::Cell>>]
|
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::Models::Cell.new(name: name, position: [y, x])
|
22
|
+
Vedeu::Models::Cell.new(name: name, position: [y, x]) if x > 0
|
23
23
|
end.compact
|
24
24
|
end
|
25
25
|
end.compact
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Vedeu
|
2
2
|
|
3
|
-
module
|
3
|
+
module Buffers
|
4
4
|
|
5
5
|
# All output will be written to this singleton, and #render will
|
6
6
|
# be called at the end of each run of {Vedeu::MainLoop};
|
@@ -11,7 +11,7 @@ module Vedeu
|
|
11
11
|
# points and only at the end of each run of {Vedeu::MainLoop} will
|
12
12
|
# it be actually output 'somewhere'.
|
13
13
|
#
|
14
|
-
module
|
14
|
+
module Terminal
|
15
15
|
|
16
16
|
extend self
|
17
17
|
|
@@ -66,8 +66,6 @@ module Vedeu
|
|
66
66
|
# @return [Array<Array<Vedeu::Views::Char>>]
|
67
67
|
def update(value_or_values)
|
68
68
|
buffer.update(value_or_values)
|
69
|
-
|
70
|
-
self
|
71
69
|
end
|
72
70
|
|
73
71
|
# Write a collection of cells to the virtual terminal, will
|
@@ -79,14 +77,12 @@ module Vedeu
|
|
79
77
|
# @example
|
80
78
|
# Vedeu.trigger(:_drb_store_output_, value_or_values)
|
81
79
|
#
|
82
|
-
# @param
|
80
|
+
# @param value_or_values [Array<Array<Vedeu::Views::Char>>]
|
83
81
|
# @return [Array<Array<Vedeu::Views::Char>>]
|
84
82
|
def write(value_or_values)
|
85
83
|
buffer.update(value_or_values)
|
86
84
|
|
87
85
|
refresh
|
88
|
-
|
89
|
-
self
|
90
86
|
end
|
91
87
|
|
92
88
|
private
|
@@ -100,26 +96,26 @@ module Vedeu
|
|
100
96
|
end
|
101
97
|
alias_method :cells, :buffer
|
102
98
|
|
103
|
-
end #
|
99
|
+
end # Terminal
|
104
100
|
|
105
|
-
end #
|
101
|
+
end # Buffers
|
106
102
|
|
107
103
|
# @!method clear
|
108
|
-
# @see Vedeu::Terminal
|
109
|
-
def_delegators Vedeu::Terminal
|
104
|
+
# @see Vedeu::Buffers::Terminal#clear
|
105
|
+
def_delegators Vedeu::Buffers::Terminal,
|
110
106
|
:clear,
|
111
107
|
:refresh
|
112
108
|
|
113
109
|
# :nocov:
|
114
110
|
|
115
|
-
# @see Vedeu::Terminal
|
111
|
+
# @see Vedeu::Buffers::Terminal#clear
|
116
112
|
Vedeu.bind(:_clear_) { Vedeu.clear }
|
117
113
|
|
118
|
-
# @see Vedeu::Terminal
|
119
|
-
Vedeu.bind(:_drb_retrieve_output_) { Vedeu::Terminal
|
114
|
+
# @see Vedeu::Buffers::Terminal#output
|
115
|
+
Vedeu.bind(:_drb_retrieve_output_) { Vedeu::Buffers::Terminal.output }
|
120
116
|
|
121
|
-
# @see Vedeu::Terminal
|
122
|
-
Vedeu.bind(:_drb_store_output_) { |data| Vedeu::Terminal
|
117
|
+
# @see Vedeu::Buffers::Terminal#write
|
118
|
+
Vedeu.bind(:_drb_store_output_) { |data| Vedeu::Buffers::Terminal.write(data) }
|
123
119
|
|
124
120
|
# :nocov:
|
125
121
|
|
data/lib/vedeu/cursors/cursor.rb
CHANGED
@@ -39,12 +39,6 @@ module Vedeu
|
|
39
39
|
# @return [Fixnum]
|
40
40
|
attr_writer :y
|
41
41
|
|
42
|
-
# @param (see #initialize)
|
43
|
-
# @return [Vedeu::Cursors::Cursor]
|
44
|
-
def self.store(attributes = {})
|
45
|
-
new(attributes).store
|
46
|
-
end
|
47
|
-
|
48
42
|
# Returns a new instance of Vedeu::Cursors::Cursor.
|
49
43
|
#
|
50
44
|
# @param attributes [Hash<Symbol => Boolean|Fixnum|String|
|
@@ -162,8 +156,6 @@ module Vedeu
|
|
162
156
|
#
|
163
157
|
# @return [Array<Vedeu::Models::Escape>]
|
164
158
|
def render
|
165
|
-
Vedeu.log(type: :output, message: "Refreshing cursor: '#{name}'".freeze)
|
166
|
-
|
167
159
|
Vedeu.render_output(escape_sequence)
|
168
160
|
end
|
169
161
|
|
@@ -199,6 +191,8 @@ module Vedeu
|
|
199
191
|
def hide
|
200
192
|
super
|
201
193
|
|
194
|
+
Vedeu.log(type: :output, message: "Hiding cursor: '#{name}'".freeze)
|
195
|
+
|
202
196
|
render
|
203
197
|
end
|
204
198
|
|
@@ -234,6 +228,8 @@ module Vedeu
|
|
234
228
|
def show
|
235
229
|
super
|
236
230
|
|
231
|
+
Vedeu.log(type: :output, message: "Showing cursor: '#{name}'".freeze)
|
232
|
+
|
237
233
|
render
|
238
234
|
end
|
239
235
|
|
@@ -44,6 +44,11 @@ module Vedeu
|
|
44
44
|
def by_name
|
45
45
|
refresh_view if refresh_view?
|
46
46
|
|
47
|
+
Vedeu.log(type: :output,
|
48
|
+
message: "Refreshing cursor: '#{name}' (x:#{cursor.x}, " \
|
49
|
+
"y:#{cursor.y}, ox:#{cursor.ox}, oy:#{cursor.oy}, " \
|
50
|
+
"visible:#{cursor.visible})".freeze)
|
51
|
+
|
47
52
|
cursor.render
|
48
53
|
end
|
49
54
|
|
data/lib/vedeu/editor/all.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Vedeu
|
2
|
+
|
3
|
+
module Editor
|
4
|
+
|
5
|
+
# Used by {Vedeu::Editor::Lines} and {Vedeu::Editor::Line} to
|
6
|
+
# fetch an item from the respective collection.
|
7
|
+
#
|
8
|
+
# @api private
|
9
|
+
#
|
10
|
+
module Collection
|
11
|
+
|
12
|
+
include Vedeu::Repositories::Assemblage
|
13
|
+
|
14
|
+
# Fetches an item from a collection.
|
15
|
+
#
|
16
|
+
# @param index [Fixnum]
|
17
|
+
# @return [String]
|
18
|
+
def by_index(index)
|
19
|
+
Vedeu::Editor::Item.by_index(collection, index)
|
20
|
+
end
|
21
|
+
|
22
|
+
end # Collection
|
23
|
+
|
24
|
+
end # Editor
|
25
|
+
|
26
|
+
end # Vedeu
|
@@ -31,14 +31,6 @@ module Vedeu
|
|
31
31
|
# @return [String|Symbol]
|
32
32
|
attr_accessor :name
|
33
33
|
|
34
|
-
# Store an instance of this class with its repository.
|
35
|
-
#
|
36
|
-
# @param (see #initialize)
|
37
|
-
# @return (see #initialize)
|
38
|
-
def self.store(attributes = {})
|
39
|
-
new(attributes).store
|
40
|
-
end
|
41
|
-
|
42
34
|
# Returns the document as a string with line breaks if there is
|
43
35
|
# more than one line.
|
44
36
|
#
|
data/lib/vedeu/editor/line.rb
CHANGED
@@ -8,37 +8,31 @@ module Vedeu
|
|
8
8
|
#
|
9
9
|
class Line
|
10
10
|
|
11
|
-
|
11
|
+
include Vedeu::Editor::Collection
|
12
|
+
|
13
|
+
# @!attribute [rw] collection
|
12
14
|
# @return [String]
|
13
|
-
attr_accessor :
|
14
|
-
alias_method :
|
15
|
+
attr_accessor :collection
|
16
|
+
alias_method :line, :collection
|
17
|
+
alias_method :to_s, :collection
|
15
18
|
|
16
19
|
# Coerce a line into a new instance of Vedeu::Editor::Line.
|
17
20
|
#
|
18
|
-
# @param
|
21
|
+
# @param collection [String|Vedeu::Editor::Line]
|
19
22
|
# @return (see #initialize)
|
20
|
-
def self.coerce(
|
21
|
-
return
|
22
|
-
return new(
|
23
|
+
def self.coerce(collection)
|
24
|
+
return collection if collection.is_a?(self)
|
25
|
+
return new(collection) if collection.is_a?(String)
|
23
26
|
|
24
27
|
new
|
25
28
|
end
|
26
29
|
|
27
30
|
# Returns a new instance of Vedeu::Editor::Line.
|
28
31
|
#
|
29
|
-
# @param
|
32
|
+
# @param collection [String|NilClass]
|
30
33
|
# @return [Vedeu::Editor::Line]
|
31
|
-
def initialize(
|
32
|
-
@
|
33
|
-
end
|
34
|
-
|
35
|
-
# Return a character or collection of characters (if index is a
|
36
|
-
# Range).
|
37
|
-
#
|
38
|
-
# @param index [Fixnum|Range]
|
39
|
-
# @return [String]
|
40
|
-
def [](index)
|
41
|
-
line[index]
|
34
|
+
def initialize(collection = nil)
|
35
|
+
@collection = collection || ''
|
42
36
|
end
|
43
37
|
|
44
38
|
# Return the character at the given index.
|
@@ -46,10 +40,10 @@ module Vedeu
|
|
46
40
|
# @param index [Fixnum|NilClass]
|
47
41
|
# @return [String|NilClass]
|
48
42
|
def character(index = nil)
|
49
|
-
return ''
|
50
|
-
return
|
43
|
+
return '' if collection && collection.empty?
|
44
|
+
return collection[-1] unless index
|
51
45
|
|
52
|
-
|
46
|
+
by_index(index)
|
53
47
|
end
|
54
48
|
|
55
49
|
# Delete the character from the line positioned at the given
|
@@ -62,23 +56,6 @@ module Vedeu
|
|
62
56
|
.from(line, index, size))
|
63
57
|
end
|
64
58
|
|
65
|
-
# Returns a boolean indicating whether there are characters on
|
66
|
-
# this line.
|
67
|
-
#
|
68
|
-
# @return [Boolean]
|
69
|
-
def empty?
|
70
|
-
line.empty?
|
71
|
-
end
|
72
|
-
|
73
|
-
# An object is equal when its values are the same.
|
74
|
-
#
|
75
|
-
# @param other [Vedeu::Editor::Line]
|
76
|
-
# @return [Boolean]
|
77
|
-
def eql?(other)
|
78
|
-
self.class == other.class && line == other.line
|
79
|
-
end
|
80
|
-
alias_method :==, :eql?
|
81
|
-
|
82
59
|
# Insert the character on the line positioned at the given
|
83
60
|
# index.
|
84
61
|
#
|
@@ -89,14 +66,7 @@ module Vedeu
|
|
89
66
|
return self unless character
|
90
67
|
|
91
68
|
Vedeu::Editor::Line.coerce(Vedeu::Editor::Insert
|
92
|
-
.into(
|
93
|
-
end
|
94
|
-
|
95
|
-
# Return the size of the line in characters.
|
96
|
-
#
|
97
|
-
# @return [Fixnum]
|
98
|
-
def size
|
99
|
-
line.size
|
69
|
+
.into(collection, character, index, size))
|
100
70
|
end
|
101
71
|
|
102
72
|
end # Line
|
data/lib/vedeu/editor/lines.rb
CHANGED
@@ -9,10 +9,12 @@ module Vedeu
|
|
9
9
|
class Lines
|
10
10
|
|
11
11
|
include Enumerable
|
12
|
+
include Vedeu::Editor::Collection
|
12
13
|
|
13
|
-
# @!attribute [rw]
|
14
|
+
# @!attribute [rw] collection
|
14
15
|
# @return [String]
|
15
|
-
attr_accessor :
|
16
|
+
attr_accessor :collection
|
17
|
+
alias_method :lines, :collection
|
16
18
|
|
17
19
|
# Coerce a document into a new instance of Vedeu::Editor::Lines.
|
18
20
|
#
|
@@ -23,16 +25,16 @@ module Vedeu
|
|
23
25
|
new(document.lines)
|
24
26
|
|
25
27
|
elsif document.is_a?(Array)
|
26
|
-
|
28
|
+
collection = document.map { |line| Vedeu::Editor::Line.coerce(line) }
|
27
29
|
|
28
|
-
new(
|
30
|
+
new(collection)
|
29
31
|
|
30
32
|
elsif document.is_a?(String)
|
31
|
-
|
33
|
+
collection = document.lines.map(&:chomp).map do |line|
|
32
34
|
Vedeu::Editor::Line.coerce(line)
|
33
35
|
end
|
34
36
|
|
35
|
-
new(
|
37
|
+
new(collection)
|
36
38
|
|
37
39
|
else
|
38
40
|
new
|
@@ -42,18 +44,10 @@ module Vedeu
|
|
42
44
|
|
43
45
|
# Returns a new instance of Vedeu::Editor::Lines.
|
44
46
|
#
|
45
|
-
# @param
|
47
|
+
# @param collection [Array<String>|NilClass]
|
46
48
|
# @return [Vedeu::Editor::Lines]
|
47
|
-
def initialize(
|
48
|
-
@
|
49
|
-
end
|
50
|
-
|
51
|
-
# Return a line or collection of lines (if index is a Range).
|
52
|
-
#
|
53
|
-
# @param index [Fixnum|Range]
|
54
|
-
# @return [Vedeu::Editor::Line]
|
55
|
-
def [](index)
|
56
|
-
lines[index]
|
49
|
+
def initialize(collection = nil)
|
50
|
+
@collection = collection || []
|
57
51
|
end
|
58
52
|
|
59
53
|
# Deletes the character from the line where the cursor is
|
@@ -63,9 +57,9 @@ module Vedeu
|
|
63
57
|
# @param x [Fixnum]
|
64
58
|
# @return [Vedeu::Editor::Lines]
|
65
59
|
def delete_character(y, x)
|
66
|
-
|
60
|
+
collection[y] = line(y).delete_character(x) unless line(y).empty?
|
67
61
|
|
68
|
-
Vedeu::Editor::Lines.coerce(
|
62
|
+
Vedeu::Editor::Lines.coerce(collection)
|
69
63
|
end
|
70
64
|
|
71
65
|
# Delete the line from the lines positioned at the given index.
|
@@ -82,25 +76,9 @@ module Vedeu
|
|
82
76
|
# @param block [Proc]
|
83
77
|
# @return [Enumerator]
|
84
78
|
def each(&block)
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
# Returns a boolean indicating whether there are lines.
|
89
|
-
#
|
90
|
-
# @return [Boolean]
|
91
|
-
def empty?
|
92
|
-
lines.empty?
|
79
|
+
collection.each(&block)
|
93
80
|
end
|
94
81
|
|
95
|
-
# An object is equal when its values are the same.
|
96
|
-
#
|
97
|
-
# @param other [Vedeu::Editor::Lines]
|
98
|
-
# @return [Boolean]
|
99
|
-
def eql?(other)
|
100
|
-
self.class == other.class && lines == other.lines
|
101
|
-
end
|
102
|
-
alias_method :==, :eql?
|
103
|
-
|
104
82
|
# Insert a character in to a line.
|
105
83
|
#
|
106
84
|
# @param character [String]
|
@@ -108,9 +86,9 @@ module Vedeu
|
|
108
86
|
# @param x [Fixnum]
|
109
87
|
# @return [Vedeu::Editor::Lines]
|
110
88
|
def insert_character(character, y, x)
|
111
|
-
|
89
|
+
collection[y] = line(y).insert_character(character, x)
|
112
90
|
|
113
|
-
Vedeu::Editor::Lines.coerce(
|
91
|
+
Vedeu::Editor::Lines.coerce(collection)
|
114
92
|
end
|
115
93
|
|
116
94
|
# Insert the line on the line below the given index.
|
@@ -119,7 +97,7 @@ module Vedeu
|
|
119
97
|
# @return [Vedeu::Editor::Lines]
|
120
98
|
def insert_line(index = nil)
|
121
99
|
Vedeu::Editor::Lines.coerce(
|
122
|
-
Vedeu::Editor::Insert.into(
|
100
|
+
Vedeu::Editor::Insert.into(collection,
|
123
101
|
Vedeu::Editor::Line.new,
|
124
102
|
index,
|
125
103
|
size))
|
@@ -130,27 +108,20 @@ module Vedeu
|
|
130
108
|
# @param index [Fixnum|NilClass]
|
131
109
|
# @return [Vedeu::Editor::Line]
|
132
110
|
def line(index = nil)
|
133
|
-
return Vedeu::Editor::Line.new unless
|
134
|
-
return Vedeu::Editor::Line.coerce(
|
111
|
+
return Vedeu::Editor::Line.new unless collection
|
112
|
+
return Vedeu::Editor::Line.coerce(collection[-1]) unless index
|
135
113
|
|
136
|
-
Vedeu::Editor::Line.coerce(
|
137
|
-
end
|
138
|
-
|
139
|
-
# Return the number of lines.
|
140
|
-
#
|
141
|
-
# @return [Fixnum]
|
142
|
-
def size
|
143
|
-
lines.size
|
114
|
+
Vedeu::Editor::Line.coerce(by_index(index))
|
144
115
|
end
|
145
116
|
|
146
117
|
# Return the lines as a string.
|
147
118
|
#
|
148
119
|
# @return [String]
|
149
120
|
def to_s
|
150
|
-
|
121
|
+
collection.map(&:to_s).join
|
151
122
|
end
|
152
123
|
|
153
|
-
end #
|
124
|
+
end # Lines
|
154
125
|
|
155
126
|
end # Editor
|
156
127
|
|
@@ -82,12 +82,6 @@ module Vedeu
|
|
82
82
|
# @return [Object]
|
83
83
|
attr_accessor :client
|
84
84
|
|
85
|
-
# @param (see #initialize)
|
86
|
-
# @return (see #initialize)
|
87
|
-
def self.store(attributes, &block)
|
88
|
-
new(attributes).store(&block)
|
89
|
-
end
|
90
|
-
|
91
85
|
# Returns a new instance of Vedeu::Geometries::Geometry.
|
92
86
|
#
|
93
87
|
# @param attributes [Hash<Symbol => Boolean|Fixnum|String|
|
data/lib/vedeu/groups/group.rb
CHANGED
@@ -14,12 +14,6 @@ module Vedeu
|
|
14
14
|
# @return [String]
|
15
15
|
attr_accessor :name
|
16
16
|
|
17
|
-
# @param (see #initialize)
|
18
|
-
# @return (see #initialize)
|
19
|
-
def self.store(attributes = {})
|
20
|
-
new(attributes).store
|
21
|
-
end
|
22
|
-
|
23
17
|
# Return a new instance of Vedeu::Groups::Group.
|
24
18
|
#
|
25
19
|
# @note
|
data/lib/vedeu/input/capture.rb
CHANGED
@@ -107,7 +107,7 @@ module Vedeu
|
|
107
107
|
# Returns a boolean indicating whether a mouse click was
|
108
108
|
# received.
|
109
109
|
#
|
110
|
-
# @param
|
110
|
+
# @param input [NilClass|String|Symbol|Vedeu::Cursors::Cursor]
|
111
111
|
# @return [Boolean]
|
112
112
|
def click?(input)
|
113
113
|
return false if input.nil? || input.is_a?(Symbol)
|
data/lib/vedeu/logging/log.rb
CHANGED
@@ -135,7 +135,7 @@ module Vedeu
|
|
135
135
|
def message_type(type)
|
136
136
|
Vedeu::EscapeSequences::Esc
|
137
137
|
.send(message_types.fetch(type, :default)[0]) do
|
138
|
-
"[#{type}]".ljust(
|
138
|
+
"[#{type}]".ljust(11)
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
@@ -170,7 +170,10 @@ module Vedeu
|
|
170
170
|
debug: [:white, :light_grey],
|
171
171
|
|
172
172
|
input: [:light_yellow, :yellow],
|
173
|
-
|
173
|
+
|
174
|
+
compress: [:white, :light_grey],
|
175
|
+
output: [:light_green, :green],
|
176
|
+
render: [:light_green, :green],
|
174
177
|
|
175
178
|
error: [:light_red, :red],
|
176
179
|
|
data/lib/vedeu/models/focus.rb
CHANGED
@@ -169,15 +169,13 @@ module Vedeu
|
|
169
169
|
Vedeu.trigger(:_refresh_cursor_, current)
|
170
170
|
end
|
171
171
|
|
172
|
-
#
|
173
|
-
# entities.
|
172
|
+
# Access to the storage for this repository.
|
174
173
|
#
|
175
174
|
# @return [Array]
|
176
|
-
def
|
177
|
-
|
178
|
-
|
179
|
-
storage
|
175
|
+
def storage
|
176
|
+
@storage ||= in_memory
|
180
177
|
end
|
178
|
+
alias_method :registered, :storage
|
181
179
|
|
182
180
|
# Returns a boolean indicating whether the named model is
|
183
181
|
# registered.
|
@@ -229,13 +227,6 @@ module Vedeu
|
|
229
227
|
current
|
230
228
|
end
|
231
229
|
|
232
|
-
# Access to the storage for this repository.
|
233
|
-
#
|
234
|
-
# @return [Array]
|
235
|
-
def storage
|
236
|
-
@storage ||= in_memory
|
237
|
-
end
|
238
|
-
|
239
230
|
# Returns an empty collection ready for the storing of interface
|
240
231
|
# names.
|
241
232
|
#
|
@@ -51,9 +51,13 @@ module Vedeu
|
|
51
51
|
|
52
52
|
# @return [Array]
|
53
53
|
def content
|
54
|
-
|
54
|
+
@content ||= if present?(output)
|
55
|
+
output.content.reject(&:cell?)
|
55
56
|
|
56
|
-
|
57
|
+
else
|
58
|
+
[]
|
59
|
+
|
60
|
+
end
|
57
61
|
end
|
58
62
|
|
59
63
|
# @return [String]
|
@@ -69,7 +73,7 @@ module Vedeu
|
|
69
73
|
].join
|
70
74
|
end.join
|
71
75
|
|
72
|
-
Vedeu.log(type: :
|
76
|
+
Vedeu.log(type: :compress,
|
73
77
|
message: "Compression: #{content.size} objects -> " \
|
74
78
|
"#{out.size} characters".freeze)
|
75
79
|
|
@@ -81,7 +85,7 @@ module Vedeu
|
|
81
85
|
def uncompress
|
82
86
|
out = content.map(&:to_s).join
|
83
87
|
|
84
|
-
Vedeu.log(type: :
|
88
|
+
Vedeu.log(type: :compress,
|
85
89
|
message: "No compression: #{content.size} objects -> " \
|
86
90
|
"#{out.size} characters".freeze)
|
87
91
|
|
data/lib/vedeu/output/output.rb
CHANGED
@@ -74,7 +74,7 @@ module Vedeu
|
|
74
74
|
# Send the view to the renderers. If the output is a
|
75
75
|
# {Vedeu::Models::Escape} object (typical when showing or
|
76
76
|
# hiding the cursor) then we bypass the
|
77
|
-
# {Vedeu::Terminal
|
77
|
+
# {Vedeu::Buffers::Terminal} and write directly to the terminal
|
78
78
|
# because escape sequences only make sense to the terminal and
|
79
79
|
# not other renderers.
|
80
80
|
#
|
@@ -100,12 +100,12 @@ module Vedeu
|
|
100
100
|
|
101
101
|
# @return [Array]
|
102
102
|
def buffer_update!
|
103
|
-
Vedeu::Terminal
|
103
|
+
Vedeu::Buffers::Terminal.update(output)
|
104
104
|
end
|
105
105
|
|
106
106
|
# @return [Array]
|
107
107
|
def buffer_write!
|
108
|
-
Vedeu::Terminal
|
108
|
+
Vedeu::Buffers::Terminal.write(output)
|
109
109
|
end
|
110
110
|
|
111
111
|
# @return [Array<String>]
|
@@ -18,7 +18,7 @@ module Vedeu
|
|
18
18
|
# @return [Array<void>]
|
19
19
|
def clear
|
20
20
|
storage.map do |renderer|
|
21
|
-
Vedeu.log(type: :
|
21
|
+
Vedeu.log(type: :render,
|
22
22
|
message: "Clearing via #{renderer.class.name}".freeze)
|
23
23
|
|
24
24
|
Thread.new(renderer) do
|
@@ -51,7 +51,7 @@ module Vedeu
|
|
51
51
|
# @return [Array<void>]
|
52
52
|
def render(output)
|
53
53
|
storage.map do |renderer|
|
54
|
-
Vedeu.log(type: :
|
54
|
+
Vedeu.log(type: :render,
|
55
55
|
message: "Rendering via #{renderer.class.name}".freeze)
|
56
56
|
|
57
57
|
Thread.new(renderer) do
|