vedeu 0.6.40 → 0.6.41
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/.rubocop.yml +1 -0
- data/.yardopts +7 -0
- data/README.md +10 -0
- data/benchmarks/array_vs_range.rb +41 -0
- data/docs/api.md +7 -0
- data/docs/colours_styles.md +4 -0
- data/docs/debugging.md +19 -0
- data/docs/template.md +1 -0
- data/examples/284_slow_rendering.rb +105 -0
- data/lib/vedeu/borders/dsl.rb +2 -1
- data/lib/vedeu/borders/repository.rb +2 -1
- data/lib/vedeu/buffers/repository.rb +2 -1
- data/lib/vedeu/colours/backgrounds.rb +2 -1
- data/lib/vedeu/colours/foregrounds.rb +2 -1
- data/lib/vedeu/configuration/configuration.rb +3 -1
- data/lib/vedeu/cursors/cursor.rb +3 -1
- data/lib/vedeu/cursors/repository.rb +4 -2
- data/lib/vedeu/distributed/server.rb +5 -2
- data/lib/vedeu/dsl/view.rb +4 -1
- data/lib/vedeu/editor/document.rb +13 -12
- data/lib/vedeu/editor/repository.rb +2 -1
- data/lib/vedeu/events/aliases.rb +3 -1
- data/lib/vedeu/events/event.rb +6 -2
- data/lib/vedeu/events/repository.rb +2 -1
- data/lib/vedeu/events/trigger.rb +2 -1
- data/lib/vedeu/geometry/dsl.rb +2 -1
- data/lib/vedeu/geometry/repository.rb +2 -1
- data/lib/vedeu/groups/clear.rb +2 -1
- data/lib/vedeu/groups/dsl.rb +2 -1
- data/lib/vedeu/groups/group.rb +4 -1
- data/lib/vedeu/groups/repository.rb +2 -1
- data/lib/vedeu/input/dsl.rb +2 -1
- data/lib/vedeu/input/keymaps.rb +2 -1
- data/lib/vedeu/input/mapper.rb +2 -1
- data/lib/vedeu/interfaces/dsl.rb +2 -1
- data/lib/vedeu/interfaces/interface.rb +3 -1
- data/lib/vedeu/interfaces/repository.rb +2 -1
- data/lib/vedeu/logging/all.rb +1 -0
- data/lib/vedeu/logging/debug.rb +2 -1
- data/lib/vedeu/logging/ips.rb +57 -0
- data/lib/vedeu/logging/log.rb +4 -1
- data/lib/vedeu/logging/timer.rb +2 -1
- data/lib/vedeu/menus/menu.rb +2 -1
- data/lib/vedeu/menus/repository.rb +2 -1
- data/lib/vedeu/models/focus.rb +6 -2
- data/lib/vedeu/output/clear/interface.rb +46 -4
- data/lib/vedeu/output/compressor.rb +1 -1
- data/lib/vedeu/output/output.rb +36 -3
- data/lib/vedeu/output/renderers/all.rb +3 -1
- data/lib/vedeu/runtime/application.rb +2 -1
- data/lib/vedeu/runtime/flags.rb +3 -1
- data/lib/vedeu/runtime/main_loop.rb +2 -2
- data/lib/vedeu/runtime/router.rb +2 -1
- data/lib/vedeu/terminal/buffer.rb +27 -8
- data/lib/vedeu/terminal/terminal.rb +4 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/editor/document_test.rb +1 -0
- data/test/lib/vedeu/output/clear/interface_test.rb +1 -0
- data/test/lib/vedeu/output/output_test.rb +45 -1
- data/test/lib/vedeu/terminal/buffer_test.rb +11 -0
- data/test/lib/vedeu_test.rb +2 -0
- data/test/test_helper.rb +21 -0
- data/vedeu.gemspec +1 -0
- metadata +20 -2
|
@@ -120,7 +120,9 @@ module Vedeu
|
|
|
120
120
|
# @see Vedeu::Renderers#renderer
|
|
121
121
|
# @!method renderers
|
|
122
122
|
# @see Vedeu::Renderers#renderers
|
|
123
|
-
def_delegators Vedeu::Renderers,
|
|
123
|
+
def_delegators Vedeu::Renderers,
|
|
124
|
+
:renderer,
|
|
125
|
+
:renderers
|
|
124
126
|
|
|
125
127
|
end # Vedeu
|
|
126
128
|
|
data/lib/vedeu/runtime/flags.rb
CHANGED
data/lib/vedeu/runtime/router.rb
CHANGED
|
@@ -84,22 +84,30 @@ module Vedeu
|
|
|
84
84
|
end
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
# Write a collection of cells to the virtual terminal
|
|
87
|
+
# Write a collection of cells to the virtual terminal, will
|
|
88
|
+
# then send written content to be rendered by a renderer.
|
|
88
89
|
#
|
|
89
90
|
# @param value [Array<Array<Vedeu::Views::Char>>]
|
|
90
91
|
# @return [Array<Array<Vedeu::Views::Char>>]
|
|
91
92
|
def write(value)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
values.each do |v|
|
|
95
|
-
buffer[v.position.y][v.position.x] = v if valid_position?(v)
|
|
96
|
-
end
|
|
93
|
+
update_buffer(value)
|
|
97
94
|
|
|
98
95
|
render
|
|
99
96
|
|
|
100
97
|
self
|
|
101
98
|
end
|
|
102
99
|
|
|
100
|
+
# Write a collection of cells to the virtual terminal, but do
|
|
101
|
+
# not send to a renderer.
|
|
102
|
+
#
|
|
103
|
+
# @param value [Array<Array<Vedeu::Views::Char>>]
|
|
104
|
+
# @return [Array<Array<Vedeu::Views::Char>>]
|
|
105
|
+
def update(value)
|
|
106
|
+
update_buffer(value)
|
|
107
|
+
|
|
108
|
+
self
|
|
109
|
+
end
|
|
110
|
+
|
|
103
111
|
private
|
|
104
112
|
|
|
105
113
|
# @param from [Array] An Array of rows, or an Array of cells.
|
|
@@ -120,6 +128,16 @@ module Vedeu
|
|
|
120
128
|
value.position.is_a?(Vedeu::Geometry::Position)
|
|
121
129
|
end
|
|
122
130
|
|
|
131
|
+
# @param value [Array<Array<Vedeu::Views::Char>>]
|
|
132
|
+
# @return [Array<Array<Vedeu::Views::Char>>]
|
|
133
|
+
def update_buffer(value)
|
|
134
|
+
values = Array(value).flatten
|
|
135
|
+
|
|
136
|
+
values.each do |v|
|
|
137
|
+
buffer[v.position.y][v.position.x] = v if valid_position?(v)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
123
141
|
# Returns a boolean indicating the value has a position
|
|
124
142
|
# attribute and is within the terminal boundary.
|
|
125
143
|
#
|
|
@@ -144,8 +162,9 @@ module Vedeu
|
|
|
144
162
|
|
|
145
163
|
# @!method clear
|
|
146
164
|
# @see Vedeu::Terminal::Buffer#clear
|
|
147
|
-
def_delegators Vedeu::Terminal::Buffer,
|
|
148
|
-
|
|
165
|
+
def_delegators Vedeu::Terminal::Buffer,
|
|
166
|
+
:clear,
|
|
167
|
+
:refresh
|
|
149
168
|
|
|
150
169
|
# :nocov:
|
|
151
170
|
|
|
@@ -222,7 +222,10 @@ module Vedeu
|
|
|
222
222
|
# @see Vedeu::Terminal#resize
|
|
223
223
|
# @!method width
|
|
224
224
|
# @see Vedeu::Terminal#width
|
|
225
|
-
def_delegators Vedeu::Terminal,
|
|
225
|
+
def_delegators Vedeu::Terminal,
|
|
226
|
+
:height,
|
|
227
|
+
:resize,
|
|
228
|
+
:width
|
|
226
229
|
|
|
227
230
|
# :nocov:
|
|
228
231
|
|
data/lib/vedeu/version.rb
CHANGED
|
@@ -16,6 +16,42 @@ module Vedeu
|
|
|
16
16
|
it { instance.instance_variable_get('@output').must_equal(output) }
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
describe '.buffer_write' do
|
|
20
|
+
subject { described.buffer_write(output) }
|
|
21
|
+
|
|
22
|
+
context 'when the output is empty' do
|
|
23
|
+
it { subject.must_be_instance_of(NilClass) }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
context 'when the output is not empty' do
|
|
27
|
+
let(:output) { Vedeu::Models::Page.new }
|
|
28
|
+
|
|
29
|
+
it {
|
|
30
|
+
Vedeu::Terminal::Buffer.expects(:write).with(output)
|
|
31
|
+
subject
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe '.direct_write' do
|
|
37
|
+
subject { described.direct_write(output) }
|
|
38
|
+
|
|
39
|
+
context 'when the output is empty' do
|
|
40
|
+
it { subject.must_be_instance_of(NilClass) }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context 'when the output is not empty' do
|
|
44
|
+
let(:output) {
|
|
45
|
+
Vedeu::Models::Escape.new(value: "\e[?25h", position: [1, 1])
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
it {
|
|
49
|
+
Vedeu::Terminal.expects(:output).with(output.to_s)
|
|
50
|
+
subject
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
19
55
|
describe '.render_output' do
|
|
20
56
|
subject { described.render_output(output) }
|
|
21
57
|
|
|
@@ -30,7 +66,7 @@ module Vedeu
|
|
|
30
66
|
}
|
|
31
67
|
|
|
32
68
|
it {
|
|
33
|
-
Vedeu::Terminal.expects(:output)
|
|
69
|
+
Vedeu::Terminal.expects(:output).with(output.to_s)
|
|
34
70
|
subject
|
|
35
71
|
}
|
|
36
72
|
end
|
|
@@ -46,6 +82,14 @@ module Vedeu
|
|
|
46
82
|
end
|
|
47
83
|
end
|
|
48
84
|
|
|
85
|
+
describe '#buffer_write' do
|
|
86
|
+
it { instance.must_respond_to(:buffer_write) }
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
describe '#direct_write' do
|
|
90
|
+
it { instance.must_respond_to(:direct_write) }
|
|
91
|
+
end
|
|
92
|
+
|
|
49
93
|
describe '#render_output' do
|
|
50
94
|
it { instance.must_respond_to(:render_output) }
|
|
51
95
|
end
|
|
@@ -49,6 +49,7 @@ module Vedeu
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
context 'when Vedeu is not ready' do
|
|
52
|
+
# @todo Add more tests.
|
|
52
53
|
end
|
|
53
54
|
end
|
|
54
55
|
|
|
@@ -86,6 +87,16 @@ module Vedeu
|
|
|
86
87
|
let(:_value) {}
|
|
87
88
|
|
|
88
89
|
subject { described.write(_value) }
|
|
90
|
+
|
|
91
|
+
# @todo Add more tests.
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
describe '#update' do
|
|
95
|
+
let(:_value) {}
|
|
96
|
+
|
|
97
|
+
subject { described.update(_value) }
|
|
98
|
+
|
|
99
|
+
# @todo Add more tests.
|
|
89
100
|
end
|
|
90
101
|
|
|
91
102
|
end # Buffer
|
data/test/lib/vedeu_test.rb
CHANGED
|
@@ -13,6 +13,7 @@ describe Vedeu do
|
|
|
13
13
|
it { Vedeu.must_respond_to(:borders) }
|
|
14
14
|
it { Vedeu.must_respond_to(:bound?) }
|
|
15
15
|
it { Vedeu.must_respond_to(:buffers) }
|
|
16
|
+
it { Vedeu.must_respond_to(:buffer_write) }
|
|
16
17
|
it { Vedeu.must_respond_to(:clear) }
|
|
17
18
|
it { Vedeu.must_respond_to(:clear_by_group) }
|
|
18
19
|
it { Vedeu.must_respond_to(:clear_by_name) }
|
|
@@ -21,6 +22,7 @@ describe Vedeu do
|
|
|
21
22
|
it { Vedeu.must_respond_to(:configure) }
|
|
22
23
|
it { Vedeu.must_respond_to(:cursor) }
|
|
23
24
|
it { Vedeu.must_respond_to(:cursors) }
|
|
25
|
+
it { Vedeu.must_respond_to(:direct_write) }
|
|
24
26
|
it { Vedeu.must_respond_to(:documents) }
|
|
25
27
|
it { Vedeu.must_respond_to(:drb_restart) }
|
|
26
28
|
it { Vedeu.must_respond_to(:drb_start) }
|
data/test/test_helper.rb
CHANGED
|
@@ -123,3 +123,24 @@ def test_configuration
|
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
test_configuration
|
|
126
|
+
|
|
127
|
+
# require "benchmark/ips"
|
|
128
|
+
|
|
129
|
+
# def fast
|
|
130
|
+
# end
|
|
131
|
+
|
|
132
|
+
# def slow
|
|
133
|
+
# end
|
|
134
|
+
|
|
135
|
+
# Benchmark.ips do |x|
|
|
136
|
+
# x.report("describe") { fast }
|
|
137
|
+
# x.report("describe") { slow }
|
|
138
|
+
# x.compare!
|
|
139
|
+
# end
|
|
140
|
+
|
|
141
|
+
# ips = Vedeu::Logging::Debug::IPS.new
|
|
142
|
+
# ips.add_item('original') do
|
|
143
|
+
# end
|
|
144
|
+
# ips.add_item('newimproved') do
|
|
145
|
+
# end
|
|
146
|
+
# ips.execute!
|
data/vedeu.gemspec
CHANGED
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
21
21
|
spec.require_paths = ['lib']
|
|
22
22
|
|
|
23
|
+
spec.add_development_dependency 'benchmark-ips', '2.3.0'
|
|
23
24
|
spec.add_development_dependency 'guard', '2.13.0'
|
|
24
25
|
spec.add_development_dependency 'guard-minitest', '2.4.4'
|
|
25
26
|
spec.add_development_dependency 'guard-rubocop', '1.2.0'
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vedeu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.41
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gavin Laking
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-10-
|
|
11
|
+
date: 2015-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: benchmark-ips
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - '='
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 2.3.0
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 2.3.0
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: guard
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -257,6 +271,7 @@ files:
|
|
|
257
271
|
- LICENSE.txt
|
|
258
272
|
- README.md
|
|
259
273
|
- Rakefile
|
|
274
|
+
- benchmarks/array_vs_range.rb
|
|
260
275
|
- bin/vedeu
|
|
261
276
|
- bin/vedeu_drb_client
|
|
262
277
|
- bin/vedeu_drb_server
|
|
@@ -270,6 +285,7 @@ files:
|
|
|
270
285
|
- docs/colours_styles.md
|
|
271
286
|
- docs/configuration.md
|
|
272
287
|
- docs/cursors.md
|
|
288
|
+
- docs/debugging.md
|
|
273
289
|
- docs/dsl.md
|
|
274
290
|
- docs/events.md
|
|
275
291
|
- docs/events/application.md
|
|
@@ -294,6 +310,7 @@ files:
|
|
|
294
310
|
- docs/streams.md
|
|
295
311
|
- docs/template.md
|
|
296
312
|
- docs/view.md
|
|
313
|
+
- examples/284_slow_rendering.rb
|
|
297
314
|
- examples/dsl_alignment.rb
|
|
298
315
|
- examples/dsl_demo_groups.rb
|
|
299
316
|
- examples/dsl_editor.rb
|
|
@@ -419,6 +436,7 @@ files:
|
|
|
419
436
|
- lib/vedeu/interfaces/repository.rb
|
|
420
437
|
- lib/vedeu/logging/all.rb
|
|
421
438
|
- lib/vedeu/logging/debug.rb
|
|
439
|
+
- lib/vedeu/logging/ips.rb
|
|
422
440
|
- lib/vedeu/logging/lockless_log_device.rb
|
|
423
441
|
- lib/vedeu/logging/log.rb
|
|
424
442
|
- lib/vedeu/logging/mono_logger.rb
|