vedeu 0.4.33 → 0.4.34

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vedeu/bindings.rb +11 -0
  3. data/lib/vedeu/configuration/configuration.rb +6 -0
  4. data/lib/vedeu/dsl/geometry.rb +5 -0
  5. data/lib/vedeu/events/event.rb +3 -1
  6. data/lib/vedeu/input/mapper.rb +3 -0
  7. data/lib/vedeu/models/focus.rb +15 -0
  8. data/lib/vedeu/output/renderers/all.rb +9 -0
  9. data/lib/vedeu/repositories/repositories/background_colours.rb +3 -0
  10. data/lib/vedeu/repositories/repositories/borders.rb +6 -0
  11. data/lib/vedeu/repositories/repositories/buffers.rb +6 -0
  12. data/lib/vedeu/repositories/repositories/cursors.rb +12 -0
  13. data/lib/vedeu/repositories/repositories/events_repository.rb +6 -0
  14. data/lib/vedeu/repositories/repositories/foreground_colours.rb +3 -0
  15. data/lib/vedeu/repositories/repositories/geometries.rb +6 -0
  16. data/lib/vedeu/repositories/repositories/groups.rb +9 -0
  17. data/lib/vedeu/repositories/repositories/interfaces_repository.rb +9 -0
  18. data/lib/vedeu/repositories/repositories/keymaps.rb +6 -0
  19. data/lib/vedeu/repositories/repositories/menus.rb +6 -0
  20. data/lib/vedeu/support/terminal.rb +3 -0
  21. data/lib/vedeu/support/timer.rb +5 -0
  22. data/lib/vedeu/version.rb +1 -1
  23. data/test/lib/vedeu/buffers/buffer_test.rb +159 -93
  24. data/test/lib/vedeu/configuration/api_test.rb +36 -10
  25. data/test/lib/vedeu/configuration/cli_test.rb +27 -27
  26. data/test/lib/vedeu/configuration/configuration_test.rb +8 -7
  27. data/test/lib/vedeu/cursor/cursor_test.rb +34 -0
  28. data/test/lib/vedeu/cursor/move_test.rb +32 -2
  29. data/test/lib/vedeu/distributed/client_test.rb +3 -5
  30. data/test/lib/vedeu/distributed/server_test.rb +37 -14
  31. data/test/lib/vedeu/distributed/subprocess_test.rb +12 -0
  32. data/test/lib/vedeu/distributed/uri_test.rb +2 -0
  33. data/test/lib/vedeu/dsl/border_test.rb +5 -7
  34. data/test/lib/vedeu/dsl/geometry_test.rb +6 -4
  35. data/test/lib/vedeu/dsl/line_test.rb +0 -4
  36. data/test/lib/vedeu/dsl/presentation_test.rb +8 -7
  37. data/test/lib/vedeu/events/event_test.rb +6 -6
  38. data/test/lib/vedeu/geometry/geometry_test.rb +53 -0
  39. data/test/lib/vedeu/input/keymap_test.rb +4 -0
  40. data/test/lib/vedeu/models/char_test.rb +24 -0
  41. data/test/lib/vedeu/models/group_test.rb +4 -0
  42. data/test/lib/vedeu/models/interface_test.rb +65 -0
  43. data/test/lib/vedeu/models/menu_test.rb +24 -0
  44. data/test/lib/vedeu/models/stream_test.rb +23 -0
  45. data/test/lib/vedeu/null/geometry_test.rb +12 -0
  46. data/test/lib/vedeu/output/border_test.rb +109 -0
  47. data/test/lib/vedeu/output/clear_test.rb +8 -8
  48. data/test/lib/vedeu/output/renderers/all_test.rb +16 -16
  49. data/test/lib/vedeu/output/style_test.rb +8 -0
  50. data/test/lib/vedeu/output/virtual_terminal_test.rb +14 -18
  51. data/test/lib/vedeu/repositories/collection_test.rb +21 -0
  52. data/test/lib/vedeu/repositories/model_test.rb +8 -0
  53. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b62c5ba6eef01e883bf71b71a52223214dcffa48
4
- data.tar.gz: 6217942929014ce27de055b78a2e533a56bb638d
3
+ metadata.gz: 627cd72e48091fbe2959ffc08efac5353a7af4cb
4
+ data.tar.gz: f027bb4b0648c2dce85949bdb8b381ba7eb09408
5
5
  SHA512:
6
- metadata.gz: 8b40fb9d5ee9ffc2660ebd062a12f2eb64903330b5f80f50daf4133c9adec364caa31cb31140981ac9a0de585d065d472208e33cb85363c235ef2720ac4101b2
7
- data.tar.gz: e6cdfbc8f776b1ad7f5f611dadf8cc7bce21f8ec0375650f7995dc9e1070922e755e7e6143230f6bb1a2ca426c23595ba4046513ccc4ac710d22331eb9e736ef
6
+ metadata.gz: 05fdee8984b672ea21e8fd03b29139dfcaa237ec93db32c2d7d4afa63ba421656caff81caa6cf580682cb66184e8fbbc67b331c96c9c2a16a67bb4d725b853d0
7
+ data.tar.gz: 50e6af9ada7c570262c426c493a330ab39897d4218e635bd151540d5c3a719a1eb0233d2280aef038ebd2b2aaa396030968ba068e9e51c5bcec8828bc6dcd4a0
@@ -13,6 +13,8 @@ module Vedeu
13
13
  # @api public
14
14
  module Bindings
15
15
 
16
+ # Triggering this event will send input to the running application as long
17
+ # as it has the DRb server running.
16
18
  Vedeu.bind(:_drb_input_) do |data, type|
17
19
  Vedeu.log(type: :drb, message: "Sending input (#{type})")
18
20
 
@@ -24,13 +26,22 @@ module Vedeu
24
26
 
25
27
  Vedeu.bind(:_drb_retrieve_output_) { Vedeu::VirtualBuffer.retrieve }
26
28
 
29
+ # Triggering this event with 'data' will push data into the running
30
+ # application's virtual buffer.
27
31
  Vedeu.bind(:_drb_store_output_) do |data|
28
32
  Vedeu::VirtualBuffer.store(Vedeu::Terminal.virtual.output(data))
29
33
  end
30
34
 
35
+ # Use the DRb server to request the client application to restart.
31
36
  Vedeu.bind(:_drb_restart_) { Vedeu::Distributed::Server.restart }
37
+
38
+ # Use the DRb server to request the client application to start.
32
39
  Vedeu.bind(:_drb_start_) { Vedeu::Distributed::Server.start }
40
+
41
+ # Use the DRb server to request the status of the client application.
33
42
  Vedeu.bind(:_drb_status_) { Vedeu::Distributed::Server.status }
43
+
44
+ # Use the DRb server to request the client application to stop.
34
45
  Vedeu.bind(:_drb_stop_) { Vedeu::Distributed::Server.stop }
35
46
 
36
47
  # Vedeu triggers this event when `:_exit_` is triggered. You can hook into
@@ -39,6 +39,9 @@ module Vedeu
39
39
  # are provided at application invocation, override any options with the
40
40
  # arguments provided.
41
41
  #
42
+ # @example
43
+ # Vedeu.configure
44
+ #
42
45
  # @param args [Array]
43
46
  # @param opts [Hash]
44
47
  # @option opts stdin [File|IO]
@@ -53,6 +56,9 @@ module Vedeu
53
56
 
54
57
  # Returns the configuration singleton.
55
58
  #
59
+ # @example
60
+ # Vedeu.configuration
61
+ #
56
62
  # @return [Vedeu::Configuration]
57
63
  def configuration
58
64
  instance
@@ -8,6 +8,11 @@ module Vedeu
8
8
  # top-left, y = 1, x = 1. The 'y' coordinate is deliberately first.
9
9
  #
10
10
  # @example
11
+ #
12
+ # Vedeu.geometry 'some_interface' do
13
+ # # ...
14
+ #
15
+ #
11
16
  # This crude ASCII diagram represents a Geometry within Vedeu, each of the
12
17
  # labels is a value you can access or define.
13
18
  #
@@ -90,6 +90,9 @@ module Vedeu
90
90
 
91
91
  # Unbind events from a named handler.
92
92
  #
93
+ # @example
94
+ # Vedeu.unbind('some_event')
95
+ #
93
96
  # @param name [String]
94
97
  # @return [Boolean]
95
98
  def unbind(name)
@@ -101,7 +104,6 @@ module Vedeu
101
104
 
102
105
  true
103
106
  end
104
- alias_method :unevent, :unbind
105
107
 
106
108
  extend Forwardable
107
109
 
@@ -9,6 +9,9 @@ module Vedeu
9
9
  # the associated action is fired, if not, we move to the next keymap or
10
10
  # return false.
11
11
  #
12
+ # @example
13
+ # Vedeu.keypress(key_name, keymap_name)
14
+ #
12
15
  # @param (see #initialize)
13
16
  # @return [Boolean]
14
17
  def self.keypress(key = nil, name = nil)
@@ -38,6 +38,9 @@ module Vedeu
38
38
  # Focus an interface by name. Used after defining an interface or interfaces
39
39
  # to set the initially focussed interface.
40
40
  #
41
+ # @example
42
+ # Vedeu.focus_by_name('name')
43
+ #
41
44
  # @param name [String] The interface to focus; must be defined.
42
45
  # @raise [ModelNotFound] When the interface cannot be found.
43
46
  # @return [String] The name of the interface now in focus.
@@ -53,6 +56,9 @@ module Vedeu
53
56
 
54
57
  # Return the interface currently focussed.
55
58
  #
59
+ # @example
60
+ # Vedeu.focus
61
+ #
56
62
  # @return [String]
57
63
  def current
58
64
  storage.first
@@ -61,6 +67,9 @@ module Vedeu
61
67
 
62
68
  # Returns a boolean indicating whether the named interface is focussed.
63
69
  #
70
+ # @example
71
+ # Vedeu.focussed?(name)
72
+ #
64
73
  # @param name [String]
65
74
  # @return [Boolean]
66
75
  def current?(name)
@@ -77,6 +86,9 @@ module Vedeu
77
86
 
78
87
  # Put the next interface relative to the current interfaces in focus.
79
88
  #
89
+ # @example
90
+ # Vedeu.focus_next
91
+ #
80
92
  # @return [String]
81
93
  def next_item
82
94
  storage.rotate!
@@ -88,6 +100,9 @@ module Vedeu
88
100
 
89
101
  # Put the previous interface relative to the current interface in focus.
90
102
  #
103
+ # @example
104
+ # Vedeu.focus_previous
105
+ #
91
106
  # @return [String]
92
107
  def prev_item
93
108
  storage.rotate!(-1)
@@ -18,12 +18,18 @@ module Vedeu
18
18
 
19
19
  # Provides access to the list of renderers.
20
20
  #
21
+ # @example
22
+ # Vedeu.renderers
23
+ #
21
24
  # @api public
22
25
  # @return [Module]
23
26
  def renderers
24
27
  self
25
28
  end
26
29
 
30
+ # @example
31
+ # Vedeu.renderers.render(*args)
32
+ #
27
33
  # @return [Array<void>]
28
34
  def render(*args)
29
35
  threads = storage.map do |renderer|
@@ -53,6 +59,9 @@ module Vedeu
53
59
  storage
54
60
  end
55
61
 
62
+ # @example
63
+ # Vedeu.renderers.reset
64
+ #
56
65
  # @return [Set]
57
66
  def reset
58
67
  @storage = Set.new
@@ -5,6 +5,9 @@ module Vedeu
5
5
  # @api public
6
6
  class BackgroundColours < Colours
7
7
 
8
+ # @example
9
+ # Vedeu.background_colours
10
+ #
8
11
  # @return [Vedeu::BackgroundColours]
9
12
  def self.background_colours
10
13
  @background_colours ||= new
@@ -8,11 +8,17 @@ module Vedeu
8
8
 
9
9
  class << self
10
10
 
11
+ # @example
12
+ # Vedeu.borders
13
+ #
11
14
  # @return [Vedeu::Borders]
12
15
  alias_method :borders, :repository
13
16
 
14
17
  # Remove all stored models from the repository.
15
18
  #
19
+ # @example
20
+ # Vedeu.borders.reset
21
+ #
16
22
  # @return [Vedeu::Borders]
17
23
  def reset!
18
24
  @borders = register(Vedeu::Border)
@@ -7,11 +7,17 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.buffers
12
+ #
10
13
  # @return [Vedeu::Buffers]
11
14
  alias_method :buffers, :repository
12
15
 
13
16
  # Remove all stored models from the repository.
14
17
  #
18
+ # @example
19
+ # Vedeu.buffers.reset
20
+ #
15
21
  # @return [Vedeu::Buffers]
16
22
  def reset!
17
23
  @buffers = register(Vedeu::Buffer)
@@ -7,9 +7,15 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.cursors
12
+ #
10
13
  # @return [Vedeu::Cursors]
11
14
  alias_method :cursors, :repository
12
15
 
16
+ # @example
17
+ # Vedeu.cursor
18
+ #
13
19
  # @return [Vedeu::Cursor]
14
20
  def cursor
15
21
  cursors.by_name(Vedeu.focus) if Vedeu.focus
@@ -17,6 +23,9 @@ module Vedeu
17
23
 
18
24
  # Remove all stored models from the repository.
19
25
  #
26
+ # @example
27
+ # Vedeu.cursors.reset
28
+ #
20
29
  # @return [Vedeu::Cursors]
21
30
  def reset!
22
31
  @cursors = register(Vedeu::Cursor)
@@ -24,6 +33,9 @@ module Vedeu
24
33
 
25
34
  end
26
35
 
36
+ # @example
37
+ # Vedeu.cursors.by_name('some_name')
38
+ #
27
39
  # @param name [String] The name of the stored cursor.
28
40
  # @return [Vedeu::Cursor]
29
41
  def by_name(name)
@@ -7,11 +7,17 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.events
12
+ #
10
13
  # @return [Vedeu::EventsRepository]
11
14
  alias_method :events, :repository
12
15
 
13
16
  # Remove all stored models from the repository.
14
17
  #
18
+ # @example
19
+ # Vedeu.events.reset
20
+ #
15
21
  # @return [Vedeu::EventsRepository]
16
22
  def reset!
17
23
  @events = new(Vedeu::Events)
@@ -5,6 +5,9 @@ module Vedeu
5
5
  # @api public
6
6
  class ForegroundColours < Colours
7
7
 
8
+ # @example
9
+ # Vedeu.foreground_colours
10
+ #
8
11
  # @return [Vedeu::ForegroundColours]
9
12
  def self.foreground_colours
10
13
  @foreground_colours ||= new
@@ -8,11 +8,17 @@ module Vedeu
8
8
 
9
9
  class << self
10
10
 
11
+ # @example
12
+ # Vedeu.geometries
13
+ #
11
14
  # @return [Vedeu::Geometries]
12
15
  alias_method :geometries, :repository
13
16
 
14
17
  # Remove all stored models from the repository.
15
18
  #
19
+ # @example
20
+ # Vedeu.geometries.reset!
21
+ #
16
22
  # @return [Vedeu::Geometries]
17
23
  def reset!
18
24
  @geometries = register(Vedeu::Geometry)
@@ -7,11 +7,17 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.groups
12
+ #
10
13
  # @return [Vedeu::Groups]
11
14
  alias_method :groups, :repository
12
15
 
13
16
  # Remove all stored models from the repository.
14
17
  #
18
+ # @example
19
+ # Vedeu.groups.reset!
20
+ #
15
21
  # @return [Vedeu::Groups]
16
22
  def reset!
17
23
  @groups = register(Vedeu::Group)
@@ -19,6 +25,9 @@ module Vedeu
19
25
 
20
26
  end
21
27
 
28
+ # @example
29
+ # Vedeu.groups.by_name('name')
30
+ #
22
31
  # @param name [String] The name of the stored group.
23
32
  # @return [Vedeu::Group]
24
33
  def by_name(name)
@@ -7,11 +7,17 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.interfaces
12
+ #
10
13
  # @return [Vedeu::InterfacesRepository]
11
14
  alias_method :interfaces, :repository
12
15
 
13
16
  # Remove all stored models from the repository.
14
17
  #
18
+ # @example
19
+ # Vedeu.interfaces.reset!
20
+ #
15
21
  # @return [Vedeu::InterfacesRepository]
16
22
  def reset!
17
23
  @interfaces = register(Vedeu::Interface)
@@ -24,6 +30,9 @@ module Vedeu
24
30
 
25
31
  # Returns the interfaces in zindex order.
26
32
  #
33
+ # @example
34
+ # Vedeu.interfaces.zindexed
35
+ #
27
36
  # @return [Array<Vedeu::Interface>]
28
37
  # @see Vedeu::DSL::Interface#zindex
29
38
  def zindexed
@@ -7,11 +7,17 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.keymaps
12
+ #
10
13
  # @return [Vedeu::Keymaps]
11
14
  alias_method :keymaps, :repository
12
15
 
13
16
  # Remove all stored models from the repository.
14
17
  #
18
+ # @example
19
+ # Vedeu.keymaps.reset!
20
+ #
15
21
  # @return [Vedeu::Keymaps]
16
22
  def reset!
17
23
  @keymaps = register(Vedeu::Keymap)
@@ -7,11 +7,17 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.menus
12
+ #
10
13
  # @return [Vedeu::Menus]
11
14
  alias_method :menus, :repository
12
15
 
13
16
  # Remove all stored models from the repository.
14
17
  #
18
+ # @example
19
+ # Vedeu.menus.reset!
20
+ #
15
21
  # @return [Vedeu::Menus]
16
22
  def reset!
17
23
  @menus = register(Vedeu::Menu)
@@ -76,6 +76,9 @@ module Vedeu
76
76
  # and attempt to redraw the current interface with varying degrees of
77
77
  # success. Can also be used to simulate a terminal resize.
78
78
  #
79
+ # @example
80
+ # Vedeu.resize
81
+ #
79
82
  # @return [TrueClass]
80
83
  def resize
81
84
  Vedeu.trigger(:_clear_)
@@ -7,6 +7,11 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
+ # @example
11
+ # Vedeu.timer 'message' do
12
+ # # ... code to be measured
13
+ # end
14
+ #
10
15
  # @param message [String]
11
16
  # @param block [Proc]
12
17
  # @return [void]
data/lib/vedeu/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Vedeu
2
2
 
3
3
  # The current version of Vedeu.
4
- VERSION = '0.4.33'
4
+ VERSION = '0.4.34'
5
5
 
6
6
  end