vedeu 0.6.8 → 0.6.9
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 +9 -0
- data/README.md +1 -1
- data/docs/api.md +60 -67
- data/docs/configuration.md +8 -5
- data/docs/events.md +31 -15
- data/docs/events/application.md +12 -0
- data/docs/events/document.md +57 -0
- data/docs/events/drb.md +43 -0
- data/docs/events/focus.md +24 -0
- data/docs/events/menu.md +57 -0
- data/docs/events/movement.md +57 -0
- data/docs/events/refresh.md +25 -0
- data/docs/events/system.md +90 -0
- data/docs/events/visibility.md +68 -0
- data/lib/vedeu.rb +2 -2
- data/lib/vedeu/all.rb +3 -2
- data/lib/vedeu/api.rb +18 -18
- data/lib/vedeu/application/controller.rb +1 -1
- data/lib/vedeu/application/helper.rb +1 -1
- data/lib/vedeu/application/view.rb +1 -1
- data/lib/vedeu/bindings/application.rb +1 -12
- data/lib/vedeu/bindings/bindings.rb +3 -1
- data/lib/vedeu/bindings/document.rb +9 -62
- data/lib/vedeu/bindings/drb.rb +12 -56
- data/lib/vedeu/bindings/focus.rb +3 -28
- data/lib/vedeu/bindings/menus.rb +10 -66
- data/lib/vedeu/bindings/movement.rb +4 -69
- data/lib/vedeu/bindings/refresh.rb +3 -33
- data/lib/vedeu/bindings/system.rb +14 -100
- data/lib/vedeu/bindings/visibility.rb +20 -71
- data/lib/vedeu/borders/all.rb +4 -3
- data/lib/vedeu/borders/border.rb +39 -33
- data/lib/vedeu/borders/dsl.rb +40 -33
- data/lib/vedeu/borders/null.rb +2 -2
- data/lib/vedeu/borders/render.rb +29 -24
- data/lib/vedeu/borders/repository.rb +2 -2
- data/lib/vedeu/buffers/all.rb +8 -7
- data/lib/vedeu/buffers/buffer.rb +47 -39
- data/lib/vedeu/buffers/null.rb +2 -2
- data/lib/vedeu/buffers/refresh.rb +4 -3
- data/lib/vedeu/buffers/virtual_buffer.rb +122 -118
- data/lib/vedeu/buffers/virtual_buffers.rb +62 -56
- data/lib/vedeu/colours/background.rb +2 -1
- data/lib/vedeu/colours/colour.rb +21 -19
- data/lib/vedeu/colours/foreground.rb +2 -1
- data/lib/vedeu/colours/repository.rb +6 -5
- data/lib/vedeu/colours/translator.rb +39 -35
- data/lib/vedeu/configuration/api.rb +59 -51
- data/lib/vedeu/configuration/cli.rb +9 -7
- data/lib/vedeu/configuration/configuration.rb +41 -32
- data/lib/vedeu/cursors/cursor.rb +1 -1
- data/lib/vedeu/cursors/refresh.rb +20 -16
- data/lib/vedeu/distributed/server.rb +8 -6
- data/lib/vedeu/distributed/subprocess.rb +90 -86
- data/lib/vedeu/distributed/uri.rb +4 -3
- data/lib/vedeu/dsl/composition.rb +2 -2
- data/lib/vedeu/dsl/group.rb +4 -4
- data/lib/vedeu/dsl/interface.rb +5 -5
- data/lib/vedeu/dsl/presentation.rb +2 -2
- data/lib/vedeu/dsl/text.rb +1 -1
- data/lib/vedeu/editor/cropper.rb +4 -4
- data/lib/vedeu/editor/cursor.rb +6 -4
- data/lib/vedeu/editor/document.rb +20 -18
- data/lib/vedeu/editor/editor.rb +2 -2
- data/lib/vedeu/editor/line.rb +10 -5
- data/lib/vedeu/editor/lines.rb +2 -2
- data/lib/vedeu/internal_api.rb +4 -4
- data/lib/vedeu/models/focus.rb +197 -191
- data/lib/vedeu/models/group.rb +171 -159
- data/lib/vedeu/models/groups.rb +14 -10
- data/lib/vedeu/models/interface.rb +116 -110
- data/lib/vedeu/models/interfaces.rb +24 -20
- data/lib/vedeu/models/toggleable.rb +4 -4
- data/lib/vedeu/models/views/char.rb +1 -1
- data/lib/vedeu/models/views/composition.rb +1 -1
- data/lib/vedeu/models/views/line.rb +1 -1
- data/lib/vedeu/models/views/stream.rb +1 -1
- data/lib/vedeu/models/views/view.rb +1 -1
- data/lib/vedeu/null/interface.rb +1 -1
- data/lib/vedeu/null/view.rb +1 -1
- data/lib/vedeu/output/clear/named_interface.rb +1 -1
- data/lib/vedeu/output/compressor.rb +78 -73
- data/lib/vedeu/output/direct.rb +61 -57
- data/lib/vedeu/output/output.rb +34 -29
- data/lib/vedeu/output/{presentation.rb → presentation/presentation.rb} +2 -1
- data/lib/vedeu/output/presentation/style.rb +64 -18
- data/lib/vedeu/output/presentation/styles.rb +39 -0
- data/lib/vedeu/output/renderers/html.rb +2 -2
- data/lib/vedeu/output/renderers/json.rb +2 -1
- data/lib/vedeu/output/renderers/terminal.rb +3 -3
- data/lib/vedeu/output/renderers/text.rb +3 -3
- data/lib/vedeu/output/text.rb +186 -180
- data/lib/vedeu/output/wordwrap.rb +142 -138
- data/lib/vedeu/refresh/refresh.rb +2 -2
- data/lib/vedeu/templating/helpers.rb +11 -6
- data/lib/vedeu/templating/view_template.rb +1 -1
- data/lib/vedeu/terminal/terminal.rb +2 -2
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/render_test.rb +1 -1
- data/test/lib/vedeu/buffers/buffer_test.rb +16 -14
- data/test/lib/vedeu/buffers/virtual_buffer_test.rb +105 -101
- data/test/lib/vedeu/buffers/virtual_buffers_test.rb +43 -39
- data/test/lib/vedeu/colours/colour_test.rb +4 -4
- data/test/lib/vedeu/cursors/cursor_test.rb +2 -2
- data/test/lib/vedeu/cursors/repository_test.rb +3 -3
- data/test/lib/vedeu/distributed/subprocess_test.rb +33 -29
- data/test/lib/vedeu/dsl/group_test.rb +3 -3
- data/test/lib/vedeu/dsl/interface_test.rb +6 -5
- data/test/lib/vedeu/dsl/line_test.rb +4 -2
- data/test/lib/vedeu/dsl/presentation_test.rb +2 -2
- data/test/lib/vedeu/dsl/text_test.rb +8 -8
- data/test/lib/vedeu/editor/document_test.rb +10 -6
- data/test/lib/vedeu/input/keymap_test.rb +1 -10
- data/test/lib/vedeu/models/focus_test.rb +177 -170
- data/test/lib/vedeu/models/group_test.rb +99 -95
- data/test/lib/vedeu/models/groups_test.rb +13 -9
- data/test/lib/vedeu/models/interface_test.rb +93 -87
- data/test/lib/vedeu/models/interfaces_test.rb +24 -20
- data/test/lib/vedeu/models/views/char_test.rb +2 -2
- data/test/lib/vedeu/models/views/line_test.rb +11 -7
- data/test/lib/vedeu/models/views/stream_test.rb +1 -1
- data/test/lib/vedeu/models/views/view_test.rb +1 -1
- data/test/lib/vedeu/output/clear/named_group_test.rb +1 -1
- data/test/lib/vedeu/output/clear/named_interface_test.rb +3 -1
- data/test/lib/vedeu/output/compressor_test.rb +126 -122
- data/test/lib/vedeu/output/direct_test.rb +49 -43
- data/test/lib/vedeu/output/output_test.rb +35 -31
- data/test/lib/vedeu/output/{presentation_test.rb → presentation/presentation_test.rb} +11 -7
- data/test/lib/vedeu/output/presentation/style_test.rb +88 -48
- data/test/lib/vedeu/output/presentation/styles_test.rb +84 -0
- data/test/lib/vedeu/output/text_test.rb +109 -105
- data/test/lib/vedeu/output/viewport_test.rb +3 -1
- data/test/lib/vedeu/output/wordwrap_test.rb +209 -205
- data/test/lib/vedeu/refresh/refresh_test.rb +3 -1
- data/test/lib/vedeu/templating/helpers_test.rb +6 -6
- data/test/lib/vedeu/templating/view_template_test.rb +1 -1
- metadata +17 -8
- data/lib/vedeu/output/style.rb +0 -76
- data/test/lib/vedeu/output/style_test.rb +0 -120
@@ -0,0 +1,57 @@
|
|
1
|
+
# @title Vedeu Movement Events
|
2
|
+
|
3
|
+
## Movement Events
|
4
|
+
|
5
|
+
### :_cursor_origin_
|
6
|
+
This event moves the cursor to the interface origin; the top left
|
7
|
+
corner of the named interface.
|
8
|
+
|
9
|
+
Vedeu.trigger(:_cursor_origin_, name)
|
10
|
+
Vedeu.trigger(:_cursor_reset_, name)
|
11
|
+
|
12
|
+
### :_cursor_position_
|
13
|
+
When triggered will return the current position of the cursor.
|
14
|
+
|
15
|
+
Vedeu.trigger(:_cursor_position_, name)
|
16
|
+
|
17
|
+
### :_cursor_reposition_
|
18
|
+
Moves the cursor to a relative position inside the interface.
|
19
|
+
|
20
|
+
Vedeu.trigger(:_cursor_reposition_, name, y, x)
|
21
|
+
|
22
|
+
### :_cursor_(up, down, left, right)_
|
23
|
+
Adjusts the position of the cursor or view.
|
24
|
+
|
25
|
+
When a name is not given, the cursor in the interface which is
|
26
|
+
currently in focus should move in the direction specified.
|
27
|
+
|
28
|
+
Vedeu.trigger(:_cursor_left_, 'my_interface')
|
29
|
+
Vedeu.trigger(:_cursor_left_)
|
30
|
+
Vedeu.trigger(:_cursor_right_)
|
31
|
+
Vedeu.trigger(:_cursor_up_)
|
32
|
+
Vedeu.trigger(:_cursor_down_)
|
33
|
+
|
34
|
+
- The cursor or view may not be visible, but it will still move if
|
35
|
+
requested.
|
36
|
+
- The cursor will not exceed the border or boundary of the interface,
|
37
|
+
or boundary of the visible terminal.
|
38
|
+
- The cursor will move freely within the bounds of the interface,
|
39
|
+
irrespective of content.
|
40
|
+
- The view will not exceed the boundary of the visible terminal,
|
41
|
+
though its offset may (this means content will appear to have
|
42
|
+
scrolled).
|
43
|
+
- The view will move freely within the bounds of the interface,
|
44
|
+
irrespective of content.
|
45
|
+
|
46
|
+
### :_view_(up, down, left, right)_
|
47
|
+
|
48
|
+
See {file:docs/events.md#\_cursor__up_down_left_right_}
|
49
|
+
|
50
|
+
Please note that the name of the view is required for these events.
|
51
|
+
|
52
|
+
Vedeu.trigger(:_view_down_, 'my_interface')
|
53
|
+
Vedeu.trigger(:_view_left_, 'my_interface')
|
54
|
+
Vedeu.trigger(:_view_right_, 'my_interface')
|
55
|
+
Vedeu.trigger(:_view_up_, 'my_interface')
|
56
|
+
|
57
|
+
Each of the :_view_* events has an alias, :_geometry_* if you prefer.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# @title Vedeu Refresh Events
|
2
|
+
|
3
|
+
## Refresh Events
|
4
|
+
|
5
|
+
### :_refresh_
|
6
|
+
Refreshes all registered interfaces or the named interface.
|
7
|
+
|
8
|
+
The interfaces will be refreshed in z-index order, meaning that
|
9
|
+
interfaces with a lower z-index will be drawn first. This means
|
10
|
+
overlapping interfaces will be drawn as specified. Hidden interfaces
|
11
|
+
will be still refreshed in memory but not shown.
|
12
|
+
|
13
|
+
Vedeu.trigger(:_refresh_)
|
14
|
+
Vedeu.trigger(:_refresh_, name)
|
15
|
+
|
16
|
+
### :_refresh_cursor_
|
17
|
+
Will cause the named cursor to refresh, or the cursor of the interface
|
18
|
+
which is currently in focus.
|
19
|
+
|
20
|
+
Vedeu.trigger(:_refresh_cursor_, name)
|
21
|
+
|
22
|
+
### :_refresh_group_
|
23
|
+
Will cause all interfaces in the named group to refresh.
|
24
|
+
|
25
|
+
Vedeu.trigger(:_refresh_group_, name)
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# @title Vedeu System Events
|
2
|
+
|
3
|
+
## System Events
|
4
|
+
|
5
|
+
### :_cleanup_
|
6
|
+
Vedeu triggers this event when `:_exit_` is triggered. You can hook
|
7
|
+
into this to perform a special action before the application
|
8
|
+
terminates. Saving the user's work, session or preferences might be
|
9
|
+
popular here.
|
10
|
+
|
11
|
+
Vedeu.trigger(:_exit_)
|
12
|
+
|
13
|
+
### :_clear_
|
14
|
+
Clears the whole terminal space, or when a name is given, the named
|
15
|
+
interface area will be cleared.
|
16
|
+
|
17
|
+
Vedeu.trigger(:_clear_)
|
18
|
+
Vedeu.clear_by_name(name)
|
19
|
+
|
20
|
+
### :_command_
|
21
|
+
Will cause the triggering of the `:command` event; which you should
|
22
|
+
define to 'do things'.
|
23
|
+
|
24
|
+
Vedeu.trigger(:_command_, command)
|
25
|
+
|
26
|
+
### :_editor_
|
27
|
+
This event is called by {Vedeu::Input::Input#capture}. When
|
28
|
+
invoked, the key will be passed to the editor for currently
|
29
|
+
focussed view.
|
30
|
+
|
31
|
+
Vedeu.trigger(:_editor_, key)
|
32
|
+
|
33
|
+
### :_exit_
|
34
|
+
When triggered, Vedeu will trigger a `:cleanup` event which you can
|
35
|
+
define (to save files, etc) and attempt to exit.
|
36
|
+
|
37
|
+
Vedeu.trigger(:_exit_)
|
38
|
+
Vedeu.exit
|
39
|
+
|
40
|
+
### :_initialize_
|
41
|
+
Vedeu triggers this event when it is ready to enter the main loop.
|
42
|
+
Client applications can listen for this event and perform some
|
43
|
+
action(s), like render the first screen, interface or make a sound.
|
44
|
+
|
45
|
+
Vedeu.trigger(:_initialize_)
|
46
|
+
|
47
|
+
### :_keypress_
|
48
|
+
Will cause the triggering of the `:key` event; which you should define
|
49
|
+
to 'do things'. If the `escape` key is pressed, then `key` is triggered
|
50
|
+
with the argument `:escape`, also an internal event `_mode_switch_` is
|
51
|
+
triggered. Vedeu recognises most key presses and some 'extended'
|
52
|
+
keypress (eg. Ctrl+J), a list of supported keypresses can be found here:
|
53
|
+
{Vedeu::Input::Input#specials} and {Vedeu::Input::Input#f_keys}.
|
54
|
+
|
55
|
+
Vedeu.trigger(:_keypress_, key)
|
56
|
+
|
57
|
+
### :_log_
|
58
|
+
When triggered with a message will cause Vedeu to log the message if
|
59
|
+
logging is enabled in the configuration.
|
60
|
+
|
61
|
+
Vedeu.trigger(:_log_, message)
|
62
|
+
|
63
|
+
### :_maximise_
|
64
|
+
Maximising an interface.
|
65
|
+
|
66
|
+
Vedeu.trigger(:_maximise_, name)
|
67
|
+
|
68
|
+
See {Vedeu::Geometry::Geometry#maximise}
|
69
|
+
|
70
|
+
### :_mode_switch_
|
71
|
+
When triggered (by default, after the user presses `escape`), Vedeu
|
72
|
+
switches between modes of the terminal. The idea here being
|
73
|
+
that the raw mode is for single keypress actions, whilst fake and cooked
|
74
|
+
modes allow the user to enter more elaborate commands- such as commands
|
75
|
+
with arguments.
|
76
|
+
|
77
|
+
Vedeu.trigger(:_mode_switch_)
|
78
|
+
|
79
|
+
### :_resize_
|
80
|
+
When triggered will cause Vedeu to trigger the `:_clear_` and
|
81
|
+
`:_refresh_` events. Please see those events for their behaviour.
|
82
|
+
|
83
|
+
Vedeu.trigger(:_resize_)
|
84
|
+
|
85
|
+
### :_unmaximise_
|
86
|
+
Unmaximising an interface.
|
87
|
+
|
88
|
+
Vedeu.trigger(:_unmaximise_, name)
|
89
|
+
|
90
|
+
See {Vedeu::Geometry::Geometry#unmaximise}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# @title Vedeu Visibility Events
|
2
|
+
|
3
|
+
## Visibility Events
|
4
|
+
|
5
|
+
### :_clear_group_
|
6
|
+
Clears the spaces occupied by the interfaces belonging to the named
|
7
|
+
group.
|
8
|
+
|
9
|
+
Vedeu.trigger(:_clear_group_, name)
|
10
|
+
Vedeu.clear_by_group(name)
|
11
|
+
|
12
|
+
### :_hide_cursor_
|
13
|
+
Hide the cursor of the named interface or when a name is not given,
|
14
|
+
the interface currently in focus.
|
15
|
+
|
16
|
+
Vedeu.trigger(:_hide_cursor_, name)
|
17
|
+
Vedeu.trigger(:_cursor_hide_, name)
|
18
|
+
Vedeu.hide_cursor(name)
|
19
|
+
|
20
|
+
### :_hide_group_
|
21
|
+
Hiding a group of interfaces.
|
22
|
+
|
23
|
+
Vedeu.trigger(:_hide_group_, name)
|
24
|
+
Vedeu.hide_group(name)
|
25
|
+
|
26
|
+
### :_hide_interface_
|
27
|
+
Hiding an interface.
|
28
|
+
|
29
|
+
Vedeu.trigger(:_hide_interface_, name)
|
30
|
+
Vedeu.hide_interface(name)
|
31
|
+
|
32
|
+
### :_show_cursor_
|
33
|
+
Show the cursor of the named interface or when a name is not given,
|
34
|
+
the interface currently in focus.
|
35
|
+
|
36
|
+
Vedeu.trigger(:_show_cursor_, name)
|
37
|
+
Vedeu.trigger(:_cursor_show_, name)
|
38
|
+
Vedeu.show_cursor(name)
|
39
|
+
|
40
|
+
### :_show_group_
|
41
|
+
Showing a group of interfaces.
|
42
|
+
|
43
|
+
Vedeu.trigger(:_show_group_, name)
|
44
|
+
Vedeu.show_group(name)
|
45
|
+
|
46
|
+
### :_show_interface_
|
47
|
+
Showing an interface.
|
48
|
+
|
49
|
+
Vedeu.trigger(:_show_interface_, name)
|
50
|
+
Vedeu.show_interface(name)
|
51
|
+
|
52
|
+
### :_toggle_cursor_
|
53
|
+
Toggling a cursor.
|
54
|
+
|
55
|
+
Vedeu.trigger(:_toggle_cursor_, name)
|
56
|
+
Vedeu.toggle_cursor(name)
|
57
|
+
|
58
|
+
### :_toggle_group_
|
59
|
+
Toggling a group of interfaces.
|
60
|
+
|
61
|
+
Vedeu.trigger(:_toggle_group_, name)
|
62
|
+
Vedeu.toggle_group(name)
|
63
|
+
|
64
|
+
### :_toggle_interface_
|
65
|
+
Toggling an interface.
|
66
|
+
|
67
|
+
Vedeu.trigger(:_toggle_interface_, name)
|
68
|
+
Vedeu.toggle_interface(name)
|
data/lib/vedeu.rb
CHANGED
@@ -34,9 +34,9 @@ module Vedeu
|
|
34
34
|
|
35
35
|
# Return the name of currently focussed interface.
|
36
36
|
#
|
37
|
-
# @return [Vedeu::Focus]
|
37
|
+
# @return [Vedeu::Models::Focus]
|
38
38
|
def self.focusable
|
39
|
-
@focusable ||= Vedeu::Focus
|
39
|
+
@focusable ||= Vedeu::Models::Focus
|
40
40
|
end
|
41
41
|
|
42
42
|
# :nocov:
|
data/lib/vedeu/all.rb
CHANGED
@@ -100,12 +100,13 @@ require 'vedeu/geometry/all'
|
|
100
100
|
require 'vedeu/input/all'
|
101
101
|
require 'vedeu/menus/all'
|
102
102
|
|
103
|
+
require 'vedeu/output/presentation/presentation'
|
104
|
+
|
103
105
|
require 'vedeu/output/direct'
|
104
106
|
require 'vedeu/output/clear/named_group'
|
105
107
|
require 'vedeu/output/clear/named_interface'
|
106
|
-
|
108
|
+
|
107
109
|
require 'vedeu/output/compressor'
|
108
|
-
require 'vedeu/output/style'
|
109
110
|
require 'vedeu/output/text'
|
110
111
|
require 'vedeu/output/output'
|
111
112
|
require 'vedeu/output/viewport'
|
data/lib/vedeu/api.rb
CHANGED
@@ -87,16 +87,16 @@ module Vedeu
|
|
87
87
|
def_delegators Vedeu::Events::Aliases, :bind_alias, :unbind_alias
|
88
88
|
|
89
89
|
# @!method focus
|
90
|
-
# @see Vedeu::Focus#focus
|
90
|
+
# @see Vedeu::Models::Focus#focus
|
91
91
|
# @!method focus_by_name
|
92
|
-
# @see Vedeu::Focus#focus_by_name
|
92
|
+
# @see Vedeu::Models::Focus#focus_by_name
|
93
93
|
# @!method focussed?
|
94
|
-
# @see Vedeu::Focus#focussed?
|
94
|
+
# @see Vedeu::Models::Focus#focussed?
|
95
95
|
# @!method focus_next
|
96
|
-
# @see Vedeu::Focus#focus_next
|
96
|
+
# @see Vedeu::Models::Focus#focus_next
|
97
97
|
# @!method focus_previous
|
98
|
-
# @see Vedeu::Focus#focus_previous
|
99
|
-
def_delegators Vedeu::Focus, :focus, :focus_by_name, :focussed?,
|
98
|
+
# @see Vedeu::Models::Focus#focus_previous
|
99
|
+
def_delegators Vedeu::Models::Focus, :focus, :focus_by_name, :focussed?,
|
100
100
|
:focus_next, :focus_previous
|
101
101
|
|
102
102
|
# @!method log
|
@@ -160,28 +160,28 @@ module Vedeu
|
|
160
160
|
def_delegators Vedeu::Cursors::Cursor, :toggle_cursor
|
161
161
|
|
162
162
|
# @!method hide_group
|
163
|
-
# @see Vedeu::Group#hide
|
164
|
-
def_delegators Vedeu::Group, :hide_group
|
163
|
+
# @see Vedeu::Models::Group#hide
|
164
|
+
def_delegators Vedeu::Models::Group, :hide_group
|
165
165
|
|
166
166
|
# @!method show_group
|
167
|
-
# @see Vedeu::Group#show
|
168
|
-
def_delegators Vedeu::Group, :show_group
|
167
|
+
# @see Vedeu::Models::Group#show
|
168
|
+
def_delegators Vedeu::Models::Group, :show_group
|
169
169
|
|
170
170
|
# @!method toggle_group
|
171
|
-
# @see Vedeu::Group#toggle
|
172
|
-
def_delegators Vedeu::Group, :toggle_group
|
171
|
+
# @see Vedeu::Models::Group#toggle
|
172
|
+
def_delegators Vedeu::Models::Group, :toggle_group
|
173
173
|
|
174
174
|
# @!method hide_interface
|
175
|
-
# @see Vedeu::Interface#hide
|
176
|
-
def_delegators Vedeu::Interface, :hide_interface
|
175
|
+
# @see Vedeu::Models::Interface#hide
|
176
|
+
def_delegators Vedeu::Models::Interface, :hide_interface
|
177
177
|
|
178
178
|
# @!method show_interface
|
179
|
-
# @see Vedeu::Interface#show
|
180
|
-
def_delegators Vedeu::Interface, :show_interface
|
179
|
+
# @see Vedeu::Models::Interface#show
|
180
|
+
def_delegators Vedeu::Models::Interface, :show_interface
|
181
181
|
|
182
182
|
# @!method toggle_interface
|
183
|
-
# @see Vedeu::Interface#toggle
|
184
|
-
def_delegators Vedeu::Interface, :toggle_interface
|
183
|
+
# @see Vedeu::Models::Interface#toggle
|
184
|
+
def_delegators Vedeu::Models::Interface, :toggle_interface
|
185
185
|
|
186
186
|
end # API
|
187
187
|
|
@@ -4,7 +4,6 @@ module Vedeu
|
|
4
4
|
|
5
5
|
# System events relating to movement of cursors or interfaces.
|
6
6
|
#
|
7
|
-
# :nocov:
|
8
7
|
module Application
|
9
8
|
|
10
9
|
extend self
|
@@ -19,16 +18,7 @@ module Vedeu
|
|
19
18
|
|
20
19
|
private
|
21
20
|
|
22
|
-
#
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
# Vedeu.trigger(:_goto_,
|
26
|
-
# :your_controller,
|
27
|
-
# :some_action,
|
28
|
-
# { id: 7 })
|
29
|
-
# Vedeu.goto(:your_controller, :some_action, { id: 7 })
|
30
|
-
#
|
31
|
-
# @return [TrueClass]
|
21
|
+
# See {file:docs/events/application.md#\_goto_}
|
32
22
|
def goto!
|
33
23
|
Vedeu.bind(:_goto_) do |controller, action, **args|
|
34
24
|
Vedeu::Router.goto(controller, action, **args)
|
@@ -38,7 +28,6 @@ module Vedeu
|
|
38
28
|
end
|
39
29
|
|
40
30
|
end # Application
|
41
|
-
# :nocov:
|
42
31
|
|
43
32
|
end # Bindings
|
44
33
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Vedeu
|
2
2
|
|
3
|
-
# Binds various events for running and manipulating Vedeu.
|
3
|
+
# Binds various events for running and manipulating Vedeu. When
|
4
|
+
# called provide a variety of core functions and behaviours.
|
5
|
+
# They are soft-namespaced using underscores.
|
4
6
|
#
|
5
7
|
# @note
|
6
8
|
# The methods these modules use are private, and should not be
|
@@ -5,7 +5,6 @@ module Vedeu
|
|
5
5
|
# System events relating to the document/editor/fake terminal
|
6
6
|
# implementation.
|
7
7
|
#
|
8
|
-
# :nocov:
|
9
8
|
module Document
|
10
9
|
|
11
10
|
extend self
|
@@ -28,118 +27,66 @@ module Vedeu
|
|
28
27
|
|
29
28
|
private
|
30
29
|
|
31
|
-
#
|
32
|
-
# Vedeu.trigger(:_editor_execute_, name)
|
33
|
-
#
|
34
|
-
# @return [TrueClass]
|
30
|
+
# See {file:docs/events/document.md#\_editor_execute_}
|
35
31
|
def editor_execute!
|
36
32
|
Vedeu.bind(:_editor_execute_) do |name|
|
37
33
|
Vedeu.documents.by_name(name).execute
|
38
34
|
end
|
39
35
|
end
|
40
36
|
|
41
|
-
#
|
42
|
-
# document at the current virtual cursor position.
|
43
|
-
#
|
44
|
-
# @example
|
45
|
-
# Vedeu.trigger(:_editor_delete_character_, name)
|
46
|
-
#
|
47
|
-
# @return [TrueClass]
|
37
|
+
# See {file:docs/events/document.md#\_editor_delete_character_}
|
48
38
|
def editor_delete_character!
|
49
39
|
Vedeu.bind(:_editor_delete_character_) do |name|
|
50
40
|
Vedeu.documents.by_name(name).delete_character
|
51
41
|
end
|
52
42
|
end
|
53
43
|
|
54
|
-
#
|
55
|
-
# at the current virtual cursor position.
|
56
|
-
#
|
57
|
-
# @example
|
58
|
-
# Vedeu.trigger(:_editor_delete_line_, name)
|
59
|
-
#
|
60
|
-
# @return [TrueClass]
|
44
|
+
# See {file:docs/events/document.md#\_editor_delete_line_}
|
61
45
|
def editor_delete_line!
|
62
46
|
Vedeu.bind(:_editor_delete_line_) do |name|
|
63
47
|
Vedeu.documents.by_name(name).delete_line
|
64
48
|
end
|
65
49
|
end
|
66
50
|
|
67
|
-
#
|
68
|
-
# line in the named document.
|
69
|
-
#
|
70
|
-
# @example
|
71
|
-
# Vedeu.trigger(:_editor_down_, name)
|
72
|
-
#
|
73
|
-
# @return [TrueClass]
|
51
|
+
# See {file:docs/events/document.md#\_editor_down_}
|
74
52
|
def editor_down!
|
75
53
|
Vedeu.bind(:_editor_down_) do |name|
|
76
54
|
Vedeu.documents.by_name(name).down
|
77
55
|
end
|
78
56
|
end
|
79
57
|
|
80
|
-
#
|
81
|
-
# document at the current virtual cursor position.
|
82
|
-
#
|
83
|
-
# @example
|
84
|
-
# Vedeu.trigger(:_editor_insert_character_, name, character)
|
85
|
-
#
|
86
|
-
# @return [TrueClass]
|
58
|
+
# See {file:docs/events/document.md#\_editor_insert_character_}
|
87
59
|
def editor_insert_character!
|
88
60
|
Vedeu.bind(:_editor_insert_character_) do |name, character|
|
89
61
|
Vedeu.documents.by_name(name).insert_character(character)
|
90
62
|
end
|
91
63
|
end
|
92
64
|
|
93
|
-
#
|
94
|
-
# at the current virtual cursor position.
|
95
|
-
#
|
96
|
-
# @example
|
97
|
-
# Vedeu.trigger(:_editor_insert_line_, name)
|
98
|
-
#
|
99
|
-
# @return [TrueClass]
|
65
|
+
# See {file:docs/events/document.md#\_editor_insert_line_}
|
100
66
|
def editor_insert_line!
|
101
67
|
Vedeu.bind(:_editor_insert_line_) do |name|
|
102
68
|
Vedeu.documents.by_name(name).insert_line
|
103
69
|
end
|
104
70
|
end
|
105
71
|
|
106
|
-
#
|
107
|
-
# character in the named document.
|
108
|
-
#
|
109
|
-
# @example
|
110
|
-
# Vedeu.trigger(:_editor_left_, name)
|
111
|
-
#
|
112
|
-
# @return [TrueClass]
|
72
|
+
# See {file:docs/events/document.md#\_editor_left_}
|
113
73
|
def editor_left!
|
114
74
|
Vedeu.bind(:_editor_left_) { |name| Vedeu.documents.by_name(name).left }
|
115
75
|
end
|
116
76
|
|
117
|
-
#
|
118
|
-
# character in the named document.
|
119
|
-
#
|
120
|
-
# @example
|
121
|
-
# Vedeu.trigger(:_editor_right_, name)
|
122
|
-
#
|
123
|
-
# @return [TrueClass]
|
77
|
+
# See {file:docs/events/document.md#\_editor_right_}
|
124
78
|
def editor_right!
|
125
79
|
Vedeu.bind(:_editor_right_) do |name|
|
126
80
|
Vedeu.documents.by_name(name).right
|
127
81
|
end
|
128
82
|
end
|
129
83
|
|
130
|
-
#
|
131
|
-
# in the named document.
|
132
|
-
#
|
133
|
-
# @example
|
134
|
-
# Vedeu.trigger(:_editor_up_, name)
|
135
|
-
#
|
136
|
-
# @return [TrueClass]
|
84
|
+
# See {file:docs/events/document.md#\_editor_up_}
|
137
85
|
def editor_up!
|
138
86
|
Vedeu.bind(:_editor_up_) { |name| Vedeu.documents.by_name(name).up }
|
139
87
|
end
|
140
88
|
|
141
89
|
end # Document
|
142
|
-
# :nocov:
|
143
90
|
|
144
91
|
end # Bindings
|
145
92
|
|