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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/docs/events.md +15 -5
  3. data/lib/vedeu/application/application_view.rb +0 -4
  4. data/lib/vedeu/bindings/all.rb +22 -1
  5. data/lib/vedeu/bindings/drb.rb +89 -13
  6. data/lib/vedeu/bindings/menus.rb +123 -13
  7. data/lib/vedeu/bindings/movement.rb +147 -26
  8. data/lib/vedeu/bindings/system.rb +284 -0
  9. data/lib/vedeu/bindings/visibility.rb +117 -13
  10. data/lib/vedeu/dsl/all.rb +2 -1
  11. data/lib/vedeu/output/compressor.rb +2 -0
  12. data/lib/vedeu/output/refresh.rb +20 -5
  13. data/lib/vedeu/output/refresh_group.rb +6 -1
  14. data/lib/vedeu/output/render_border.rb +1 -1
  15. data/lib/vedeu/output/renderers/all.rb +1 -0
  16. data/lib/vedeu/output/renderers/escape_sequence.rb +2 -16
  17. data/lib/vedeu/output/renderers/null.rb +2 -16
  18. data/lib/vedeu/output/renderers/renderer_options.rb +26 -0
  19. data/lib/vedeu/output/renderers/terminal.rb +2 -14
  20. data/lib/vedeu/output/renderers/text.rb +2 -16
  21. data/lib/vedeu/repositories/all.rb +23 -1
  22. data/lib/vedeu/version.rb +1 -1
  23. data/test/lib/vedeu/bindings/system_test.rb +44 -0
  24. data/test/lib/vedeu/output/refresh_group_test.rb +10 -2
  25. data/test/lib/vedeu/output/refresh_test.rb +6 -23
  26. data/test/lib/vedeu/output/renderers/renderer_options_test.rb +12 -0
  27. data/test/lib/vedeu/templating/preprocessor_test.rb +11 -10
  28. metadata +8 -10
  29. data/docs/events/drb.md +0 -49
  30. data/docs/events/main.md +0 -109
  31. data/docs/events/menus.md +0 -72
  32. data/docs/events/movement.md +0 -105
  33. data/docs/events/visibility.md +0 -61
  34. data/lib/vedeu/bindings/bindings.rb +0 -86
  35. 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