vedeu 0.4.52 → 0.4.53

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