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
data/lib/vedeu/editor/editor.rb
CHANGED
@@ -25,16 +25,15 @@ module Vedeu
|
|
25
25
|
|
26
26
|
# Send given input to the named document.
|
27
27
|
#
|
28
|
-
# @param
|
29
|
-
# @
|
30
|
-
# @return [String|Symbol]
|
28
|
+
# @param (see #initialize)
|
29
|
+
# @return (see #keypress)
|
31
30
|
def self.keypress(input:, name:)
|
32
31
|
new(input: input, name: name).keypress
|
33
32
|
end
|
34
33
|
|
35
34
|
# Returns a new instance of Vedeu::Editor::Editor.
|
36
35
|
#
|
37
|
-
# @param name [String]
|
36
|
+
# @param name [String|Symbol]
|
38
37
|
# @param input [String|Symbol]
|
39
38
|
# @return [Vedeu::Editor::Editor]
|
40
39
|
def initialize(input:, name:)
|
data/lib/vedeu/editor/insert.rb
CHANGED
data/lib/vedeu/editor/line.rb
CHANGED
@@ -14,7 +14,7 @@ module Vedeu
|
|
14
14
|
# Coerce a line into a new instance of Vedeu::Editor::Line.
|
15
15
|
#
|
16
16
|
# @param line [String|Vedeu::Editor::Line]
|
17
|
-
# @return
|
17
|
+
# @return (see #initialize)
|
18
18
|
def self.coerce(line)
|
19
19
|
return line if line.is_a?(self)
|
20
20
|
return new(line) if line.is_a?(String)
|
@@ -116,13 +116,6 @@ module Vedeu
|
|
116
116
|
line.size
|
117
117
|
end
|
118
118
|
|
119
|
-
# Return the line as a collection of Vedeu::Views::Char objects.
|
120
|
-
#
|
121
|
-
# @return [Array<Vedeu::Views::Char>]
|
122
|
-
def to_chars
|
123
|
-
line.chars.map { |char| Vedeu::Views::Char.new(value: char) }
|
124
|
-
end
|
125
|
-
|
126
119
|
end # Line
|
127
120
|
|
128
121
|
end # Editor
|
data/lib/vedeu/editor/lines.rb
CHANGED
@@ -15,7 +15,7 @@ module Vedeu
|
|
15
15
|
# Coerce a document into a new instance of Vedeu::Editor::Lines.
|
16
16
|
#
|
17
17
|
# @param document [Array<String>|Vedeu::Editor::Lines]
|
18
|
-
# @return
|
18
|
+
# @return (see #initialize)
|
19
19
|
def self.coerce(document)
|
20
20
|
if document.is_a?(self)
|
21
21
|
new(document.lines)
|
@@ -15,4 +15,13 @@ module Vedeu
|
|
15
15
|
|
16
16
|
end # Editor
|
17
17
|
|
18
|
+
# Manipulate the repository of documents.
|
19
|
+
#
|
20
|
+
# @example
|
21
|
+
# Vedeu.documents
|
22
|
+
#
|
23
|
+
# @!method documents
|
24
|
+
# @return [Vedeu::Editor::Repository]
|
25
|
+
def_delegators Vedeu::Editor::Repository, :documents
|
26
|
+
|
18
27
|
end # Vedeu
|
data/lib/vedeu/esc/esc.rb
CHANGED
@@ -11,6 +11,7 @@ module Vedeu
|
|
11
11
|
#
|
12
12
|
module Esc
|
13
13
|
|
14
|
+
include Vedeu::Common
|
14
15
|
include Vedeu::EscapeSequences::Actions
|
15
16
|
include Vedeu::EscapeSequences::Borders
|
16
17
|
include Vedeu::EscapeSequences::Colours
|
@@ -25,7 +26,7 @@ module Vedeu
|
|
25
26
|
# @param stream [String]
|
26
27
|
# @return [String]
|
27
28
|
def escape(stream = '')
|
28
|
-
return stream if
|
29
|
+
return stream if absent?(stream)
|
29
30
|
|
30
31
|
stream.gsub(/\e/, '\\e')
|
31
32
|
end
|
data/lib/vedeu/events/aliases.rb
CHANGED
@@ -10,6 +10,7 @@ module Vedeu
|
|
10
10
|
#
|
11
11
|
module Aliases
|
12
12
|
|
13
|
+
include Vedeu::Common
|
13
14
|
extend self
|
14
15
|
|
15
16
|
# Add events by name to the alias name group. When an alias is
|
@@ -48,7 +49,7 @@ module Vedeu
|
|
48
49
|
# @param alias_name [Symbol]
|
49
50
|
# @return [Boolean]
|
50
51
|
def registered?(alias_name)
|
51
|
-
return false if empty? ||
|
52
|
+
return false if empty? || absent?(alias_name)
|
52
53
|
|
53
54
|
storage.include?(alias_name)
|
54
55
|
end
|
@@ -106,4 +107,10 @@ module Vedeu
|
|
106
107
|
|
107
108
|
end # Events
|
108
109
|
|
110
|
+
# @!method bind_alias
|
111
|
+
# @see Vedeu::Events::Aliases#bind_alias
|
112
|
+
# @!method unbind_alias
|
113
|
+
# @see Vedeu::Events::Aliases#unbind_alias
|
114
|
+
def_delegators Vedeu::Events::Aliases, :bind_alias, :unbind_alias
|
115
|
+
|
109
116
|
end # Vedeu
|
data/lib/vedeu/events/event.rb
CHANGED
@@ -293,4 +293,12 @@ module Vedeu
|
|
293
293
|
|
294
294
|
end # Events
|
295
295
|
|
296
|
+
# @!method bind
|
297
|
+
# @see Vedeu::Events::Event.bind
|
298
|
+
# @!method bound?
|
299
|
+
# @see Vedeu::Events::Event.bound?
|
300
|
+
# @!method unbind
|
301
|
+
# @see Vedeu::Events::Event.unbind
|
302
|
+
def_delegators Vedeu::Events::Event, :bind, :bound?, :unbind
|
303
|
+
|
296
304
|
end # Vedeu
|
@@ -27,4 +27,13 @@ module Vedeu
|
|
27
27
|
|
28
28
|
end # Events
|
29
29
|
|
30
|
+
# Manipulate the repository of events.
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# Vedeu.events
|
34
|
+
#
|
35
|
+
# @!method events
|
36
|
+
# @return [Vedeu::Events::Repository]
|
37
|
+
def_delegators Vedeu::Events::Repository, :events
|
38
|
+
|
30
39
|
end # Vedeu
|
data/lib/vedeu/events/trigger.rb
CHANGED
@@ -14,10 +14,7 @@ module Vedeu
|
|
14
14
|
# @example
|
15
15
|
# Vedeu.trigger(:my_event, :oxidize, 'nitrogen')
|
16
16
|
#
|
17
|
-
# @param
|
18
|
-
# trigger. The event does not have to exist.
|
19
|
-
# @param args [Array] Any arguments the event needs to execute
|
20
|
-
# correctly.
|
17
|
+
# @param (see #initialize)
|
21
18
|
# @return [Array]
|
22
19
|
def self.trigger(name, *args)
|
23
20
|
new(name, *args).trigger
|
@@ -25,7 +22,10 @@ module Vedeu
|
|
25
22
|
|
26
23
|
# Returns a new instance of Vedeu::Events::Trigger.
|
27
24
|
#
|
28
|
-
# @param
|
25
|
+
# @param name [Symbol] The name of the event you wish to
|
26
|
+
# trigger. The event does not have to exist.
|
27
|
+
# @param args [Array] Any arguments the event needs to execute
|
28
|
+
# correctly.
|
29
29
|
# @return [Vedeu::Events::Trigger]
|
30
30
|
def initialize(name, *args)
|
31
31
|
@name = name
|
@@ -81,4 +81,8 @@ module Vedeu
|
|
81
81
|
|
82
82
|
end # Events
|
83
83
|
|
84
|
+
# @!method trigger
|
85
|
+
# @see Vedeu::Events::Trigger.trigger
|
86
|
+
def_delegators Vedeu::Events::Trigger, :trigger
|
87
|
+
|
84
88
|
end # Vedeu
|
@@ -18,7 +18,7 @@ module Vedeu
|
|
18
18
|
|
19
19
|
# Returns a new instance of Vedeu::Geometry::Coordinate.
|
20
20
|
#
|
21
|
-
# @param name [String]
|
21
|
+
# @param name [String|Symbol]
|
22
22
|
# @param oy [Fixnum]
|
23
23
|
# @param ox [Fixnum]
|
24
24
|
# @return [Vedeu::Geometry::Coordinate]
|
@@ -31,7 +31,7 @@ module Vedeu
|
|
31
31
|
protected
|
32
32
|
|
33
33
|
# @!attribute [r] name
|
34
|
-
# @return [String]
|
34
|
+
# @return [String|Symbol]
|
35
35
|
attr_reader :name
|
36
36
|
|
37
37
|
# @!attribute [rw] ox
|
data/lib/vedeu/geometry/dsl.rb
CHANGED
@@ -13,7 +13,7 @@ module Vedeu
|
|
13
13
|
#
|
14
14
|
# A standalone geometry definition:
|
15
15
|
#
|
16
|
-
# Vedeu.geometry
|
16
|
+
# Vedeu.geometry :some_interface do
|
17
17
|
# height 5 # Sets the height of the view to 5
|
18
18
|
# width 20 # Sets the width of the view to 20
|
19
19
|
# x 3 # Start drawing 3 spaces from left
|
@@ -24,7 +24,7 @@ module Vedeu
|
|
24
24
|
#
|
25
25
|
# An interface including a geometry definition:
|
26
26
|
#
|
27
|
-
# Vedeu.interface
|
27
|
+
# Vedeu.interface :some_interface do
|
28
28
|
# geometry do
|
29
29
|
# height 5
|
30
30
|
# width 20
|
@@ -43,14 +43,14 @@ module Vedeu
|
|
43
43
|
# You can also make a geometry declaration dependent on another
|
44
44
|
# view:
|
45
45
|
#
|
46
|
-
# Vedeu.interface
|
46
|
+
# Vedeu.interface :other_panel do
|
47
47
|
# # ... some code here
|
48
48
|
# end
|
49
49
|
#
|
50
|
-
# Vedeu.interface
|
50
|
+
# Vedeu.interface :main do
|
51
51
|
# geometry do
|
52
52
|
# height 10
|
53
|
-
# y { use(
|
53
|
+
# y { use(:other_panel).south }
|
54
54
|
# end
|
55
55
|
# # ... some code here
|
56
56
|
# end
|
@@ -79,12 +79,12 @@ module Vedeu
|
|
79
79
|
# Specify the geometry of an interface or view with a simple
|
80
80
|
# DSL.
|
81
81
|
#
|
82
|
-
# Vedeu.geometry
|
82
|
+
# Vedeu.geometry :some_interface do
|
83
83
|
# # ...
|
84
84
|
# end
|
85
85
|
#
|
86
|
-
# @param name [String] The name of the interface or view
|
87
|
-
# which this geometry belongs.
|
86
|
+
# @param name [String|Symbol] The name of the interface or view
|
87
|
+
# to which this geometry belongs.
|
88
88
|
# @param block [Proc]
|
89
89
|
# @raise [Vedeu::Error::RequiresBlock]
|
90
90
|
# @return [Vedeu::Geometry::Geometry]
|
@@ -94,21 +94,11 @@ module Vedeu
|
|
94
94
|
Vedeu::Geometry::Geometry.build(name: name, &block).store
|
95
95
|
end
|
96
96
|
|
97
|
-
# Returns an instance of Vedeu::Geometry::DSL.
|
98
|
-
#
|
99
|
-
# @param model [Vedeu::Geometry::Geometry]
|
100
|
-
# @param client [Object]
|
101
|
-
# @return [Vedeu::Geometry::DSL]
|
102
|
-
def initialize(model, client = nil)
|
103
|
-
@model = model
|
104
|
-
@client = client
|
105
|
-
end
|
106
|
-
|
107
97
|
# Instructs Vedeu to calculate x and y geometry automatically
|
108
98
|
# based on the centre character of the terminal, the width and
|
109
99
|
# the height.
|
110
100
|
#
|
111
|
-
# Vedeu.geometry
|
101
|
+
# Vedeu.geometry :some_interface do
|
112
102
|
# centred false # or...
|
113
103
|
#
|
114
104
|
# centred true # or...
|
@@ -130,7 +120,7 @@ module Vedeu
|
|
130
120
|
# Returns the width in characters for the number of columns
|
131
121
|
# specified.
|
132
122
|
#
|
133
|
-
# Vedeu.geometry
|
123
|
+
# Vedeu.geometry :main_interface do
|
134
124
|
# # ... some code
|
135
125
|
# width columns(9) # Vedeu.width # => 92 (for example)
|
136
126
|
# # 92 / 12 = 7
|
@@ -149,7 +139,7 @@ module Vedeu
|
|
149
139
|
# Specify the number of characters/rows/lines tall the interface
|
150
140
|
# will be. This value will be ignored when `y` and `yn` are set.
|
151
141
|
#
|
152
|
-
# Vedeu.geometry
|
142
|
+
# Vedeu.geometry :some_interface do
|
153
143
|
# height 8
|
154
144
|
# # ... some code
|
155
145
|
# end
|
@@ -164,7 +154,7 @@ module Vedeu
|
|
164
154
|
# Returns the height in characters for the number of rows
|
165
155
|
# specified.
|
166
156
|
#
|
167
|
-
# Vedeu.geometry
|
157
|
+
# Vedeu.geometry :main_interface do
|
168
158
|
# # ... some code
|
169
159
|
# height rows(3) # Vedeu.height # => 38 (for example)
|
170
160
|
# # 38 / 12 = 3
|
@@ -183,7 +173,7 @@ module Vedeu
|
|
183
173
|
# Specify the number of characters/columns wide the interface
|
184
174
|
# will be. This value will be ignored when `x` and `xn` are set.
|
185
175
|
#
|
186
|
-
# Vedeu.geometry
|
176
|
+
# Vedeu.geometry :some_interface do
|
187
177
|
# width 25
|
188
178
|
# # ... some code
|
189
179
|
# end
|
@@ -197,12 +187,12 @@ module Vedeu
|
|
197
187
|
|
198
188
|
# Specify the starting x position (column) of the interface.
|
199
189
|
#
|
200
|
-
# Vedeu.geometry
|
190
|
+
# Vedeu.geometry :some_interface do
|
201
191
|
# x 7 # start on column 7.
|
202
192
|
#
|
203
|
-
# # start on column 8, if
|
204
|
-
# # then
|
205
|
-
# x { use(
|
193
|
+
# # start on column 8, if :other_interface changes position
|
194
|
+
# # then :some_interface will too.
|
195
|
+
# x { use(:other_interface).east }
|
206
196
|
# # ... some code
|
207
197
|
# end
|
208
198
|
#
|
@@ -219,12 +209,12 @@ module Vedeu
|
|
219
209
|
# Specify the ending x position (column) of the interface.
|
220
210
|
# This value will override `width`.
|
221
211
|
#
|
222
|
-
# Vedeu.geometry
|
212
|
+
# Vedeu.geometry :some_interface do
|
223
213
|
# xn 37 # end at column 37.
|
224
214
|
#
|
225
|
-
# # when
|
226
|
-
# #
|
227
|
-
# xn { use(
|
215
|
+
# # when :other_interface changes position,
|
216
|
+
# # :some_interface will too.
|
217
|
+
# xn { use(:other_interface).right }
|
228
218
|
# # ... some code
|
229
219
|
# end
|
230
220
|
#
|
@@ -240,12 +230,12 @@ module Vedeu
|
|
240
230
|
|
241
231
|
# Specify the starting y position (row/line) of the interface.
|
242
232
|
#
|
243
|
-
# Vedeu.geometry
|
233
|
+
# Vedeu.geometry :some_interface do
|
244
234
|
# y 4 # start at row 4
|
245
235
|
#
|
246
|
-
# # start on row/line 3, when
|
247
|
-
# # position,
|
248
|
-
# y { use(
|
236
|
+
# # start on row/line 3, when :other_interface changes
|
237
|
+
# # position, :some_interface will too.
|
238
|
+
# y { use(:other_interface).north }
|
249
239
|
# # ... some code
|
250
240
|
# end
|
251
241
|
#
|
@@ -262,12 +252,12 @@ module Vedeu
|
|
262
252
|
# Specify the ending y position (row/line) of the interface.
|
263
253
|
# This value will override `height`.
|
264
254
|
#
|
265
|
-
# Vedeu.geometry
|
255
|
+
# Vedeu.geometry :some_interface do
|
266
256
|
# yn 24 # end at row 24.
|
267
257
|
#
|
268
|
-
# # if
|
258
|
+
# # if :other_interface changes position, :some_interface
|
269
259
|
# # will too.
|
270
|
-
# yn { use(
|
260
|
+
# yn { use(:other_interface).bottom }
|
271
261
|
# # ... some code
|
272
262
|
# end
|
273
263
|
#
|
@@ -285,4 +275,8 @@ module Vedeu
|
|
285
275
|
|
286
276
|
end # Geometry
|
287
277
|
|
278
|
+
# @!method geometry
|
279
|
+
# @see Vedeu::Geometry::DSL.geometry
|
280
|
+
def_delegators Vedeu::Geometry::DSL, :geometry
|
281
|
+
|
288
282
|
end # Vedeu
|
@@ -9,7 +9,7 @@ module Vedeu
|
|
9
9
|
# Return a new instance of Vedeu::Geometry::GenericCoordinate.
|
10
10
|
#
|
11
11
|
# @param attributes [Hash]
|
12
|
-
# @option attributes name [String]
|
12
|
+
# @option attributes name [String|Symbol]
|
13
13
|
# @option attributes type [Symbol]
|
14
14
|
# @option attributes offset [Fixnum]
|
15
15
|
# @return [Vedeu::Geometry::GenericCoordinate]
|
@@ -72,8 +72,8 @@ module Vedeu
|
|
72
72
|
# @return [Fixnum]
|
73
73
|
attr_writer :yn
|
74
74
|
|
75
|
-
# @param
|
76
|
-
# @return
|
75
|
+
# @param (see #initialize)
|
76
|
+
# @return (see #initialize)
|
77
77
|
def self.store(attributes)
|
78
78
|
new(attributes).store
|
79
79
|
end
|
@@ -84,7 +84,7 @@ module Vedeu
|
|
84
84
|
# @option attributes centred [Boolean]
|
85
85
|
# @option attributes maximised [Boolean]
|
86
86
|
# @option attributes height [Fixnum]
|
87
|
-
# @option attributes name [String]
|
87
|
+
# @option attributes name [String|Symbol]
|
88
88
|
# @option attributes repository [Vedeu::Geometry::Repository]
|
89
89
|
# @option attributes width [Fixnum]
|
90
90
|
# @option attributes x [Fixnum]
|
data/lib/vedeu/geometry/null.rb
CHANGED
@@ -4,7 +4,7 @@ module Vedeu
|
|
4
4
|
|
5
5
|
# Provides a non-existent model to swallow messages.
|
6
6
|
#
|
7
|
-
class Null
|
7
|
+
class Null < Vedeu::Null::Generic
|
8
8
|
|
9
9
|
extend Forwardable
|
10
10
|
|
@@ -35,7 +35,7 @@ module Vedeu
|
|
35
35
|
# Returns a new instance of Vedeu::Geometry::Null.
|
36
36
|
#
|
37
37
|
# @param attributes [Hash<Symbol => void>]
|
38
|
-
# @option attributes name [String|NilClass]
|
38
|
+
# @option attributes name [String|Symbol|NilClass]
|
39
39
|
# @return [Vedeu::Geometry::Null]
|
40
40
|
def initialize(attributes = {})
|
41
41
|
@attributes = attributes
|
@@ -43,28 +43,6 @@ module Vedeu
|
|
43
43
|
@maximised = @attributes.fetch(:maximised, false)
|
44
44
|
end
|
45
45
|
|
46
|
-
# @return [FalseClass]
|
47
|
-
def centred
|
48
|
-
false
|
49
|
-
end
|
50
|
-
|
51
|
-
# @return [FalseClass]
|
52
|
-
def maximised?
|
53
|
-
false
|
54
|
-
end
|
55
|
-
alias_method :maximise, :maximised?
|
56
|
-
alias_method :unmaximise, :maximised?
|
57
|
-
|
58
|
-
# @return [Boolean]
|
59
|
-
def null?
|
60
|
-
true
|
61
|
-
end
|
62
|
-
|
63
|
-
# @return [Vedeu::Geometry::Null]
|
64
|
-
def store
|
65
|
-
self
|
66
|
-
end
|
67
|
-
|
68
46
|
private
|
69
47
|
|
70
48
|
# @return [Vedeu::Geometry::Area]
|