vedeu 0.4.52 → 0.4.53
Sign up to get free protection for your applications and to get access to all the features.
- 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
|