vedeu 0.4.52 → 0.4.53
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/docs/events.md +15 -5
- data/lib/vedeu/application/application_view.rb +0 -4
- data/lib/vedeu/bindings/all.rb +22 -1
- data/lib/vedeu/bindings/drb.rb +89 -13
- data/lib/vedeu/bindings/menus.rb +123 -13
- data/lib/vedeu/bindings/movement.rb +147 -26
- data/lib/vedeu/bindings/system.rb +284 -0
- data/lib/vedeu/bindings/visibility.rb +117 -13
- data/lib/vedeu/dsl/all.rb +2 -1
- data/lib/vedeu/output/compressor.rb +2 -0
- data/lib/vedeu/output/refresh.rb +20 -5
- data/lib/vedeu/output/refresh_group.rb +6 -1
- data/lib/vedeu/output/render_border.rb +1 -1
- data/lib/vedeu/output/renderers/all.rb +1 -0
- data/lib/vedeu/output/renderers/escape_sequence.rb +2 -16
- data/lib/vedeu/output/renderers/null.rb +2 -16
- data/lib/vedeu/output/renderers/renderer_options.rb +26 -0
- data/lib/vedeu/output/renderers/terminal.rb +2 -14
- data/lib/vedeu/output/renderers/text.rb +2 -16
- data/lib/vedeu/repositories/all.rb +23 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/bindings/system_test.rb +44 -0
- data/test/lib/vedeu/output/refresh_group_test.rb +10 -2
- data/test/lib/vedeu/output/refresh_test.rb +6 -23
- data/test/lib/vedeu/output/renderers/renderer_options_test.rb +12 -0
- data/test/lib/vedeu/templating/preprocessor_test.rb +11 -10
- metadata +8 -10
- data/docs/events/drb.md +0 -49
- data/docs/events/main.md +0 -109
- data/docs/events/menus.md +0 -72
- data/docs/events/movement.md +0 -105
- data/docs/events/visibility.md +0 -61
- data/lib/vedeu/bindings/bindings.rb +0 -86
- data/test/lib/vedeu/bindings/bindings_test.rb +0 -40
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
require_relative 'drb'
|
|
2
|
-
require_relative 'menus'
|
|
3
|
-
require_relative 'movement'
|
|
4
|
-
require_relative 'visibility'
|
|
5
|
-
|
|
6
|
-
module Vedeu
|
|
7
|
-
|
|
8
|
-
# Creates system events which when called provide a variety of core functions
|
|
9
|
-
# and behaviours. They are soft-namespaced using underscores.
|
|
10
|
-
#
|
|
11
|
-
# @note
|
|
12
|
-
# Unbinding any of these events is likely to cause problems, so I would
|
|
13
|
-
# advise leaving them alone. A safe rule: if the name starts with an
|
|
14
|
-
# underscore, it's probably used by Vedeu internally.
|
|
15
|
-
#
|
|
16
|
-
# @api public
|
|
17
|
-
# {include:file:docs/events/main.md}
|
|
18
|
-
# :nocov:
|
|
19
|
-
module Bindings
|
|
20
|
-
|
|
21
|
-
include Vedeu::Bindings::DRB
|
|
22
|
-
include Vedeu::Bindings::Menus
|
|
23
|
-
include Vedeu::Bindings::Movement
|
|
24
|
-
include Vedeu::Bindings::Visibility
|
|
25
|
-
|
|
26
|
-
# Vedeu triggers this event when `:_exit_` is triggered. You can hook into
|
|
27
|
-
# this to perform a special action before the application terminates. Saving
|
|
28
|
-
# the user's work, session or preferences might be popular here.
|
|
29
|
-
Vedeu.bind(:_cleanup_) do
|
|
30
|
-
Vedeu.trigger(:_drb_stop_)
|
|
31
|
-
Vedeu.trigger(:cleanup)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
Vedeu.bind(:_clear_) do |name|
|
|
35
|
-
if name
|
|
36
|
-
Vedeu::Clear::NamedInterface.render(name)
|
|
37
|
-
|
|
38
|
-
else
|
|
39
|
-
Vedeu::Terminal.clear
|
|
40
|
-
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
Vedeu.bind(:_clear_group_) { |name| Vedeu::Clear::NamedGroup.render(name) }
|
|
44
|
-
|
|
45
|
-
Vedeu.bind(:_exit_) { Vedeu::Application.stop }
|
|
46
|
-
|
|
47
|
-
# Vedeu triggers this event when it is ready to enter the main loop. Client
|
|
48
|
-
# applications can listen for this event and perform some action(s), like
|
|
49
|
-
# render the first screen, interface or make a sound. When Vedeu triggers
|
|
50
|
-
# this event, the :_refresh_ event is also triggered automatically.
|
|
51
|
-
Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
|
|
52
|
-
|
|
53
|
-
Vedeu.bind(:_keypress_) { |key| Vedeu.keypress(key) }
|
|
54
|
-
Vedeu.bind(:_command_) { |command| Vedeu.trigger(:command, command) }
|
|
55
|
-
Vedeu.bind(:_log_) { |msg| Vedeu.log(type: :debug, message: msg) }
|
|
56
|
-
|
|
57
|
-
Vedeu.bind(:_maximise_) { |name| Vedeu.geometries.by_name(name).maximise }
|
|
58
|
-
|
|
59
|
-
# When triggered (after the user presses `escape`), Vedeu switches from a
|
|
60
|
-
# "raw mode" terminal to a "cooked mode" terminal. The idea here being that
|
|
61
|
-
# the raw mode is for single keypress actions, whilst cooked mode allows the
|
|
62
|
-
# user to enter more elaborate commands- such as commands with arguments.
|
|
63
|
-
Vedeu.bind(:_mode_switch_) { fail ModeSwitch }
|
|
64
|
-
|
|
65
|
-
# When triggered will cause Vedeu to trigger the `:_clear_` and `:_refresh_`
|
|
66
|
-
# events. Please see those events for their behaviour.
|
|
67
|
-
Vedeu.bind(:_resize_, delay: 0.15) { Vedeu.resize }
|
|
68
|
-
|
|
69
|
-
Vedeu.bind(:_focus_by_name_) { |name| Vedeu.focus_by_name(name) }
|
|
70
|
-
Vedeu.bind(:_focus_next_) { Vedeu.focus_next }
|
|
71
|
-
Vedeu.bind(:_focus_prev_) { Vedeu.focus_previous }
|
|
72
|
-
|
|
73
|
-
Vedeu.bind(:_refresh_) do |name|
|
|
74
|
-
name ? Vedeu::Refresh.by_name(name) : Vedeu::Refresh.all
|
|
75
|
-
end
|
|
76
|
-
Vedeu.bind(:_refresh_cursor_) { |name| Vedeu::RefreshCursor.render(name) }
|
|
77
|
-
Vedeu.bind(:_refresh_group_) { |name| Vedeu::Refresh.by_group(name) }
|
|
78
|
-
|
|
79
|
-
Vedeu.bind(:_unmaximise_) do |name|
|
|
80
|
-
Vedeu.geometries.by_name(name).unmaximise
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
end # Bindings
|
|
84
|
-
# :nocov:
|
|
85
|
-
|
|
86
|
-
end # Vedeu
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
module Vedeu
|
|
4
|
-
|
|
5
|
-
describe Bindings do
|
|
6
|
-
|
|
7
|
-
context 'the system events needed by Vedeu to run are defined' do
|
|
8
|
-
it { Vedeu.bound?(:_clear_).must_equal(true) }
|
|
9
|
-
it { Vedeu.bound?(:_clear_group_).must_equal(true) }
|
|
10
|
-
it { Vedeu.bound?(:_cleanup_).must_equal(true) }
|
|
11
|
-
it { Vedeu.bound?(:_command_).must_equal(true) }
|
|
12
|
-
it { Vedeu.bound?(:_exit_).must_equal(true) }
|
|
13
|
-
it { Vedeu.bound?(:_initialize_).must_equal(true) }
|
|
14
|
-
it { Vedeu.bound?(:_keypress_).must_equal(true) }
|
|
15
|
-
it { Vedeu.bound?(:_log_).must_equal(true) }
|
|
16
|
-
it { Vedeu.bound?(:_mode_switch_).must_equal(true) }
|
|
17
|
-
it { Vedeu.bound?(:_refresh_).must_equal(true) }
|
|
18
|
-
it { Vedeu.bound?(:_refresh_cursor_).must_equal(true) }
|
|
19
|
-
it { Vedeu.bound?(:_refresh_group_).must_equal(true) }
|
|
20
|
-
it { Vedeu.bound?(:_resize_).must_equal(true) }
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
context 'the geometry specific events are defined' do
|
|
24
|
-
it { Vedeu.bound?(:_maximise_).must_equal(true) }
|
|
25
|
-
it { Vedeu.bound?(:_unmaximise_).must_equal(true) }
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
context 'the focus specific events are defined' do
|
|
29
|
-
it { Vedeu.bound?(:_focus_by_name_).must_equal(true) }
|
|
30
|
-
it { Vedeu.bound?(:_focus_next_).must_equal(true) }
|
|
31
|
-
it { Vedeu.bound?(:_focus_prev_).must_equal(true) }
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context 'the refresh event for all registered interfaces is defined' do
|
|
35
|
-
it { Vedeu.bound?(:_refresh_).must_equal(true) }
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
end # Bindings
|
|
39
|
-
|
|
40
|
-
end # Vedeu
|