vedeu 0.6.20 → 0.6.21
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/.yardopts +1 -1
- data/README.md +4 -0
- data/Rakefile +13 -0
- data/bin/vedeu_drb_server +6 -6
- data/docs/api.md +14 -0
- data/docs/dsl.md +12 -12
- data/docs/events/document.md +4 -2
- data/docs/events/drb.md +4 -0
- data/docs/events/focus.md +2 -0
- data/docs/events/menu.md +2 -0
- data/docs/events/movement.md +7 -5
- data/docs/events/refresh.md +2 -0
- data/docs/events/system.md +5 -0
- data/docs/events/view.md +2 -0
- data/docs/events/visibility.md +2 -0
- data/lib/vedeu.rb +0 -23
- data/lib/vedeu/all.rb +2 -4
- data/lib/vedeu/application/application_view.rb +1 -1
- data/lib/vedeu/borders/all.rb +3 -3
- data/lib/vedeu/borders/border.rb +2 -2
- data/lib/vedeu/borders/dsl.rb +21 -27
- data/lib/vedeu/borders/null.rb +2 -15
- data/lib/vedeu/borders/render.rb +1 -1
- data/lib/vedeu/borders/repository.rb +9 -0
- data/lib/vedeu/buffers/buffer.rb +2 -2
- data/lib/vedeu/buffers/null.rb +1 -31
- data/lib/vedeu/buffers/refresh.rb +8 -8
- data/lib/vedeu/buffers/repository.rb +9 -0
- data/lib/vedeu/colours/backgrounds.rb +9 -0
- data/lib/vedeu/colours/colour.rb +1 -1
- data/lib/vedeu/colours/foregrounds.rb +9 -0
- data/lib/vedeu/common.rb +22 -13
- data/lib/vedeu/configuration/configuration.rb +6 -0
- data/lib/vedeu/cursors/cursor.rb +13 -8
- data/lib/vedeu/cursors/refresh.rb +2 -2
- data/lib/vedeu/cursors/repository.rb +18 -1
- data/lib/vedeu/distributed/server.rb +23 -0
- data/lib/vedeu/distributed/templates/default_borders.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_geometries.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_interfaces.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_keymaps.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_menus.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_views.vedeu +1 -1
- data/lib/vedeu/dsl/composition.rb +7 -17
- data/lib/vedeu/dsl/dsl.rb +12 -0
- data/lib/vedeu/dsl/interface.rb +32 -33
- data/lib/vedeu/dsl/keymap.rb +13 -19
- data/lib/vedeu/dsl/line.rb +3 -13
- data/lib/vedeu/dsl/shared.rb +5 -5
- data/lib/vedeu/dsl/stream.rb +0 -10
- data/lib/vedeu/dsl/use.rb +6 -6
- data/lib/vedeu/dsl/view.rb +17 -19
- data/lib/vedeu/editor/cursor.rb +32 -10
- data/lib/vedeu/editor/document.rb +33 -35
- data/lib/vedeu/editor/editor.rb +3 -4
- data/lib/vedeu/editor/insert.rb +1 -1
- data/lib/vedeu/editor/line.rb +1 -8
- data/lib/vedeu/editor/lines.rb +1 -1
- data/lib/vedeu/editor/repository.rb +9 -0
- data/lib/vedeu/esc/esc.rb +2 -1
- data/lib/vedeu/events/aliases.rb +8 -1
- data/lib/vedeu/events/event.rb +8 -0
- data/lib/vedeu/events/repository.rb +9 -0
- data/lib/vedeu/events/trigger.rb +9 -5
- data/lib/vedeu/geometry/coordinate.rb +2 -2
- data/lib/vedeu/geometry/dsl.rb +32 -38
- data/lib/vedeu/geometry/generic_coordinate.rb +1 -1
- data/lib/vedeu/geometry/geometry.rb +3 -3
- data/lib/vedeu/geometry/null.rb +2 -24
- data/lib/vedeu/geometry/repository.rb +9 -0
- data/lib/vedeu/groups/clear.rb +7 -3
- data/lib/vedeu/groups/dsl.rb +29 -35
- data/lib/vedeu/groups/group.rb +28 -4
- data/lib/vedeu/groups/refresh.rb +3 -2
- data/lib/vedeu/groups/repository.rb +9 -0
- data/lib/vedeu/input/capture.rb +1 -1
- data/lib/vedeu/input/keymap.rb +2 -1
- data/lib/vedeu/input/keymaps.rb +9 -0
- data/lib/vedeu/input/mapper.rb +4 -0
- data/lib/vedeu/input/translator.rb +1 -1
- data/lib/vedeu/logging/debug.rb +13 -0
- data/lib/vedeu/logging/log.rb +8 -0
- data/lib/vedeu/logging/timer.rb +13 -0
- data/lib/vedeu/menus/dsl.rb +8 -18
- data/lib/vedeu/menus/menu.rb +8 -4
- data/lib/vedeu/menus/null.rb +1 -1
- data/lib/vedeu/menus/repository.rb +9 -0
- data/lib/vedeu/models/cell.rb +5 -0
- data/lib/vedeu/models/escape.rb +5 -0
- data/lib/vedeu/models/focus.rb +20 -5
- data/lib/vedeu/models/interface.rb +10 -1
- data/lib/vedeu/models/interfaces.rb +9 -0
- data/lib/vedeu/models/toggleable.rb +19 -4
- data/lib/vedeu/models/views/char.rb +6 -1
- data/lib/vedeu/models/views/html_char.rb +1 -4
- data/lib/vedeu/models/views/line.rb +1 -1
- data/lib/vedeu/models/views/view.rb +1 -1
- data/lib/vedeu/null/generic.rb +14 -2
- data/lib/vedeu/null/interface.rb +1 -1
- data/lib/vedeu/null/view.rb +1 -1
- data/lib/vedeu/output/clear/interface.rb +5 -1
- data/lib/vedeu/output/compressor.rb +8 -4
- data/lib/vedeu/output/direct.rb +4 -4
- data/lib/vedeu/output/presentation/all.rb +15 -0
- data/lib/vedeu/output/presentation/presentation.rb +0 -7
- data/lib/vedeu/output/refresh/refresh.rb +1 -3
- data/lib/vedeu/output/renderers/all.rb +10 -0
- data/lib/vedeu/output/renderers/terminal.rb +1 -3
- data/lib/vedeu/repositories/collection.rb +3 -3
- data/lib/vedeu/repositories/model.rb +1 -1
- data/lib/vedeu/repositories/repository.rb +8 -8
- data/lib/vedeu/repositories/store.rb +3 -2
- data/lib/vedeu/runtime/application.rb +4 -0
- data/lib/vedeu/runtime/bootstrap.rb +1 -1
- data/lib/vedeu/runtime/flags.rb +7 -0
- data/lib/vedeu/runtime/main_loop.rb +2 -0
- data/lib/vedeu/runtime/router.rb +4 -0
- data/lib/vedeu/templating/decoder.rb +1 -1
- data/lib/vedeu/templating/encoder.rb +1 -1
- data/lib/vedeu/templating/helpers.rb +2 -0
- data/lib/vedeu/templating/template.rb +1 -1
- data/lib/vedeu/terminal/buffer.rb +7 -0
- data/lib/vedeu/terminal/terminal.rb +8 -0
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/dsl_test.rb +0 -6
- data/test/lib/vedeu/borders/null_test.rb +0 -12
- data/test/lib/vedeu/buffers/null_test.rb +0 -37
- data/test/lib/vedeu/common_test.rb +33 -0
- data/test/lib/vedeu/cursors/cursor_test.rb +1 -1
- data/test/lib/vedeu/dsl/composition_test.rb +0 -6
- data/test/lib/vedeu/dsl/dsl_test.rb +1 -0
- data/test/lib/vedeu/dsl/interface_test.rb +0 -6
- data/test/lib/vedeu/dsl/keymap_test.rb +0 -5
- data/test/lib/vedeu/dsl/line_test.rb +0 -7
- data/test/lib/vedeu/dsl/stream_test.rb +0 -7
- data/test/lib/vedeu/editor/cursor_test.rb +23 -8
- data/test/lib/vedeu/editor/document_test.rb +27 -23
- data/test/lib/vedeu/editor/line_test.rb +0 -30
- data/test/lib/vedeu/geometry/dsl_test.rb +0 -5
- data/test/lib/vedeu/geometry/null_test.rb +0 -30
- data/test/lib/vedeu/groups/dsl_test.rb +0 -6
- data/test/lib/vedeu/groups/group_test.rb +15 -7
- data/test/lib/vedeu/menus/dsl_test.rb +0 -5
- data/test/lib/vedeu/models/cell_test.rb +4 -0
- data/test/lib/vedeu/models/escape_test.rb +4 -0
- data/test/lib/vedeu/models/views/char_test.rb +4 -0
- data/test/lib/vedeu/null/generic_test.rb +13 -0
- data/test/lib/vedeu/terminal/buffer_test.rb +3 -2
- data/test/lib/vedeu_test.rb +81 -3
- data/test/support/examples/borders_app.rb +1 -3
- data/test/support/examples/drb_app.rb +1 -3
- data/test/support/examples/editor_app.rb +2 -4
- data/test/support/examples/focus_app.rb +1 -3
- data/test/support/examples/hello_world.rb +1 -6
- data/test/support/examples/material_colours_app.rb +1 -3
- data/test/support/examples/view_templates_app/view_templates_app.rb +1 -3
- data/test/support/helpers/model_test_class.rb +1 -5
- data/test/support/who.rb +29 -0
- data/test/test_helper.rb +0 -1
- metadata +5 -17
- data/lib/vedeu/api/all.rb +0 -15
- data/lib/vedeu/api/external.rb +0 -194
- data/lib/vedeu/api/internal.rb +0 -177
- data/test/lib/vedeu/api/external_test.rb +0 -74
- data/test/lib/vedeu/api/internal_test.rb +0 -33
- data/test/support/examples/typed_commands/command.erb +0 -1
- data/test/support/examples/typed_commands/output.erb +0 -1
- data/test/support/examples/typed_commands/status.erb +0 -1
- data/test/support/examples/typed_commands/typed_commands_app.rb +0 -94
@@ -1,12 +1,5 @@
|
|
1
|
-
require 'vedeu/output/presentation/colour'
|
2
|
-
require 'vedeu/output/presentation/styles'
|
3
|
-
require 'vedeu/output/presentation/style'
|
4
|
-
|
5
1
|
module Vedeu
|
6
2
|
|
7
|
-
# This module allows the sharing of presentation concerns between
|
8
|
-
# the models: Interface, View, Line and Stream.
|
9
|
-
#
|
10
3
|
module Presentation
|
11
4
|
|
12
5
|
include Vedeu::Presentation::Colour
|
@@ -104,6 +104,16 @@ module Vedeu
|
|
104
104
|
|
105
105
|
end # Renderers
|
106
106
|
|
107
|
+
# @example
|
108
|
+
# Vedeu.renderer
|
109
|
+
# Vedeu.renderers
|
110
|
+
#
|
111
|
+
# @!method renderer
|
112
|
+
# @see Vedeu::Renderers#renderer
|
113
|
+
# @!method renderers
|
114
|
+
# @see Vedeu::Renderers#renderers
|
115
|
+
def_delegators Vedeu::Renderers, :renderer, :renderers
|
116
|
+
|
107
117
|
end # Vedeu
|
108
118
|
|
109
119
|
require 'vedeu/output/renderers/options'
|
@@ -19,12 +19,12 @@ module Vedeu
|
|
19
19
|
attr_accessor :parent
|
20
20
|
|
21
21
|
# @!attribute [rw] name
|
22
|
-
# @return [String]
|
22
|
+
# @return [String|Symbol|NilClass]
|
23
23
|
attr_accessor :name
|
24
24
|
|
25
25
|
# @param collection [Array|Vedeu::Repositories::Collection]
|
26
26
|
# @param parent [void]
|
27
|
-
# @param name [String|NilClass]
|
27
|
+
# @param name [String|Symbol|NilClass]
|
28
28
|
# @return [Vedeu::Repositories::Collection]
|
29
29
|
def self.coerce(collection = [], parent = nil, name = nil)
|
30
30
|
if collection.is_a?(Vedeu::Repositories::Collection)
|
@@ -40,7 +40,7 @@ module Vedeu
|
|
40
40
|
#
|
41
41
|
# @param collection [void]
|
42
42
|
# @param parent [void]
|
43
|
-
# @param name [String|NilClass]
|
43
|
+
# @param name [String|Symbol|NilClass]
|
44
44
|
# @return [Vedeu::Repositories::Collection]
|
45
45
|
def initialize(collection = [], parent = nil, name = nil)
|
46
46
|
@collection = collection
|
@@ -55,12 +55,12 @@ module Vedeu
|
|
55
55
|
# @example
|
56
56
|
# # Fetch the cursor belonging to the interface of the same
|
57
57
|
# # name.
|
58
|
-
# Vedeu.cursors.by_name(
|
58
|
+
# Vedeu.cursors.by_name(:some_name)
|
59
59
|
#
|
60
60
|
# # Fetch the names of the interfaces belonging to this group.
|
61
61
|
# Vedeu.groups.by_name(name)
|
62
62
|
#
|
63
|
-
# @param name [String] The name of the stored model.
|
63
|
+
# @param name [String|Symbol] The name of the stored model.
|
64
64
|
# @return [void]
|
65
65
|
def by_name(name)
|
66
66
|
name ||= Vedeu.focus
|
@@ -79,7 +79,7 @@ module Vedeu
|
|
79
79
|
|
80
80
|
# Find the model by name.
|
81
81
|
#
|
82
|
-
# @param name [String]
|
82
|
+
# @param name [String|Symbol]
|
83
83
|
# @return [Hash<String => Object>|NilClass]
|
84
84
|
def find(name)
|
85
85
|
storage[name]
|
@@ -88,7 +88,7 @@ module Vedeu
|
|
88
88
|
# Find the model attributes by name, raises an exception when
|
89
89
|
# the model cannot be found.
|
90
90
|
#
|
91
|
-
# @param name [String]
|
91
|
+
# @param name [String|Symbol]
|
92
92
|
# @raise [Vedeu::Error::ModelNotFound] When the model cannot be
|
93
93
|
# found with this name.
|
94
94
|
# @return [Hash<String => Object>]
|
@@ -100,7 +100,7 @@ module Vedeu
|
|
100
100
|
# Find a model by name, registers the model by name when not
|
101
101
|
# found.
|
102
102
|
#
|
103
|
-
# @param name [String]
|
103
|
+
# @param name [String|Symbol]
|
104
104
|
# @return [void]
|
105
105
|
def find_or_create(name)
|
106
106
|
return find(name) if registered?(name)
|
@@ -119,10 +119,10 @@ module Vedeu
|
|
119
119
|
# Returns a boolean indicating whether the named model is
|
120
120
|
# registered.
|
121
121
|
#
|
122
|
-
# @param name [String]
|
122
|
+
# @param name [String|Symbol]
|
123
123
|
# @return [Boolean]
|
124
124
|
def registered?(name)
|
125
|
-
return false if
|
125
|
+
return false if absent?(name)
|
126
126
|
return false if empty?
|
127
127
|
|
128
128
|
storage.include?(name)
|
@@ -131,7 +131,7 @@ module Vedeu
|
|
131
131
|
# Returns the storage with the named model removed, or false
|
132
132
|
# when the model does not exist.
|
133
133
|
#
|
134
|
-
# @param name [String]
|
134
|
+
# @param name [String|Symbol]
|
135
135
|
# @return [Hash|FalseClass]
|
136
136
|
def remove(name)
|
137
137
|
return false if empty?
|
@@ -7,6 +7,7 @@ module Vedeu
|
|
7
7
|
module Store
|
8
8
|
|
9
9
|
include Enumerable
|
10
|
+
include Vedeu::Common
|
10
11
|
|
11
12
|
# @param block [Proc]
|
12
13
|
# @return [Enumerator]
|
@@ -24,10 +25,10 @@ module Vedeu
|
|
24
25
|
# Returns a boolean indicating whether the named model is
|
25
26
|
# registered.
|
26
27
|
#
|
27
|
-
# @param name [String]
|
28
|
+
# @param name [String|Symbol]
|
28
29
|
# @return [Boolean]
|
29
30
|
def exists?(name)
|
30
|
-
return false if empty? ||
|
31
|
+
return false if empty? || absent?(name)
|
31
32
|
|
32
33
|
storage.include?(name)
|
33
34
|
end
|
data/lib/vedeu/runtime/flags.rb
CHANGED
data/lib/vedeu/runtime/router.rb
CHANGED
@@ -17,7 +17,7 @@ module Vedeu
|
|
17
17
|
# @param object [Class]
|
18
18
|
# @param path [String]
|
19
19
|
# @param options [Hash]
|
20
|
-
# @option options name [String] The name of an interface.
|
20
|
+
# @option options name [String|Symbol] The name of an interface.
|
21
21
|
# @return [Vedeu::Templating::Template]
|
22
22
|
def initialize(object, path, options = {})
|
23
23
|
@object = object
|
@@ -26,6 +26,9 @@ module Vedeu
|
|
26
26
|
|
27
27
|
# Clear the output.
|
28
28
|
#
|
29
|
+
# @example
|
30
|
+
# Vedeu.clear
|
31
|
+
#
|
29
32
|
# @return [String|void] Most likely to be a String.
|
30
33
|
def clear
|
31
34
|
reset
|
@@ -137,4 +140,8 @@ module Vedeu
|
|
137
140
|
|
138
141
|
end # Terminal
|
139
142
|
|
143
|
+
# @!method clear
|
144
|
+
# @see Vedeu::Terminal::Buffer#clear
|
145
|
+
def_delegators Vedeu::Terminal::Buffer, :clear
|
146
|
+
|
140
147
|
end # Vedeu
|
@@ -216,4 +216,12 @@ module Vedeu
|
|
216
216
|
|
217
217
|
end # Terminal
|
218
218
|
|
219
|
+
# @!method height
|
220
|
+
# @see Vedeu::Terminal#height
|
221
|
+
# @!method resize
|
222
|
+
# @see Vedeu::Terminal#resize
|
223
|
+
# @!method width
|
224
|
+
# @see Vedeu::Terminal#width
|
225
|
+
def_delegators Vedeu::Terminal, :height, :resize, :width
|
226
|
+
|
219
227
|
end # Vedeu
|
data/lib/vedeu/version.rb
CHANGED
@@ -13,12 +13,6 @@ module Vedeu
|
|
13
13
|
let(:attributes) { { name: 'borders' } }
|
14
14
|
let(:boolean) { true }
|
15
15
|
|
16
|
-
describe '#initialize' do
|
17
|
-
it { instance.must_be_instance_of(described) }
|
18
|
-
it { instance.instance_variable_get('@model').must_equal(model) }
|
19
|
-
it { instance.instance_variable_get('@client').must_equal(client) }
|
20
|
-
end
|
21
|
-
|
22
16
|
describe '.border' do
|
23
17
|
it { described.must_respond_to(:border) }
|
24
18
|
end
|
@@ -60,12 +60,6 @@ module Vedeu
|
|
60
60
|
it { subject.must_equal(12) }
|
61
61
|
end
|
62
62
|
|
63
|
-
describe '#enabled?' do
|
64
|
-
subject { instance.enabled? }
|
65
|
-
|
66
|
-
it { subject.must_be_instance_of(FalseClass) }
|
67
|
-
end
|
68
|
-
|
69
63
|
describe '#height' do
|
70
64
|
subject { instance.height }
|
71
65
|
|
@@ -73,12 +67,6 @@ module Vedeu
|
|
73
67
|
it { subject.must_equal(7) }
|
74
68
|
end
|
75
69
|
|
76
|
-
describe '#null?' do
|
77
|
-
subject { instance.null? }
|
78
|
-
|
79
|
-
it { subject.must_be_instance_of(TrueClass) }
|
80
|
-
end
|
81
|
-
|
82
70
|
describe '#render' do
|
83
71
|
subject { instance.render }
|
84
72
|
|
@@ -7,43 +7,6 @@ module Vedeu
|
|
7
7
|
describe Null do
|
8
8
|
|
9
9
|
let(:described) { Vedeu::Buffers::Null }
|
10
|
-
let(:instance) { described.new(attributes) }
|
11
|
-
let(:attributes){
|
12
|
-
{
|
13
|
-
name: _name
|
14
|
-
}
|
15
|
-
}
|
16
|
-
let(:_name) { 'null_buffer' }
|
17
|
-
|
18
|
-
describe '#initialize' do
|
19
|
-
it { instance.must_be_instance_of(described) }
|
20
|
-
it {
|
21
|
-
instance.instance_variable_get('@attributes').must_equal(attributes)
|
22
|
-
}
|
23
|
-
it { instance.instance_variable_get('@name').must_equal(_name) }
|
24
|
-
end
|
25
|
-
|
26
|
-
describe 'accessors' do
|
27
|
-
it { instance.must_respond_to(:name) }
|
28
|
-
end
|
29
|
-
|
30
|
-
describe '#null' do
|
31
|
-
subject { instance.null }
|
32
|
-
|
33
|
-
it { subject.must_be_instance_of(NilClass) }
|
34
|
-
|
35
|
-
it { instance.must_respond_to(:clear) }
|
36
|
-
it { instance.must_respond_to(:hide) }
|
37
|
-
it { instance.must_respond_to(:render) }
|
38
|
-
it { instance.must_respond_to(:show) }
|
39
|
-
it { instance.must_respond_to(:toggle) }
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#null?' do
|
43
|
-
subject { instance.null? }
|
44
|
-
|
45
|
-
it { subject.must_be_instance_of(TrueClass) }
|
46
|
-
end
|
47
10
|
|
48
11
|
end # Null
|
49
12
|
|
@@ -10,6 +10,10 @@ module Vedeu
|
|
10
10
|
present?(variable)
|
11
11
|
end
|
12
12
|
|
13
|
+
def undefined_value_test(variable)
|
14
|
+
absent?(variable)
|
15
|
+
end
|
16
|
+
|
13
17
|
end # VedeuCommonClass
|
14
18
|
|
15
19
|
describe Common do
|
@@ -17,6 +21,35 @@ module Vedeu
|
|
17
21
|
let(:described) { Vedeu::VedeuCommonClass }
|
18
22
|
let(:instance) { described.new }
|
19
23
|
|
24
|
+
describe '#absent?' do
|
25
|
+
subject { instance.undefined_value_test(_value) }
|
26
|
+
|
27
|
+
context 'when the variable is a Fixnum' do
|
28
|
+
let(:_value) { 17 }
|
29
|
+
|
30
|
+
it { subject.must_equal(false) }
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'when the variable is not nil or empty' do
|
34
|
+
let(:_value) { 'not empty' }
|
35
|
+
|
36
|
+
it { subject.must_equal(false) }
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when the variable is nil or empty' do
|
40
|
+
let(:_value) { [] }
|
41
|
+
|
42
|
+
it { subject.must_equal(true) }
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when dealing with keys which may not exist or have a value' do
|
46
|
+
let(:attributes) { {} }
|
47
|
+
let(:_value) { attributes[:not_found] }
|
48
|
+
|
49
|
+
it { subject.must_equal(true) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
20
53
|
describe '#demodulize' do
|
21
54
|
let(:klass) { described }
|
22
55
|
|