vedeu 0.6.20 → 0.6.21

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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -1
  3. data/README.md +4 -0
  4. data/Rakefile +13 -0
  5. data/bin/vedeu_drb_server +6 -6
  6. data/docs/api.md +14 -0
  7. data/docs/dsl.md +12 -12
  8. data/docs/events/document.md +4 -2
  9. data/docs/events/drb.md +4 -0
  10. data/docs/events/focus.md +2 -0
  11. data/docs/events/menu.md +2 -0
  12. data/docs/events/movement.md +7 -5
  13. data/docs/events/refresh.md +2 -0
  14. data/docs/events/system.md +5 -0
  15. data/docs/events/view.md +2 -0
  16. data/docs/events/visibility.md +2 -0
  17. data/lib/vedeu.rb +0 -23
  18. data/lib/vedeu/all.rb +2 -4
  19. data/lib/vedeu/application/application_view.rb +1 -1
  20. data/lib/vedeu/borders/all.rb +3 -3
  21. data/lib/vedeu/borders/border.rb +2 -2
  22. data/lib/vedeu/borders/dsl.rb +21 -27
  23. data/lib/vedeu/borders/null.rb +2 -15
  24. data/lib/vedeu/borders/render.rb +1 -1
  25. data/lib/vedeu/borders/repository.rb +9 -0
  26. data/lib/vedeu/buffers/buffer.rb +2 -2
  27. data/lib/vedeu/buffers/null.rb +1 -31
  28. data/lib/vedeu/buffers/refresh.rb +8 -8
  29. data/lib/vedeu/buffers/repository.rb +9 -0
  30. data/lib/vedeu/colours/backgrounds.rb +9 -0
  31. data/lib/vedeu/colours/colour.rb +1 -1
  32. data/lib/vedeu/colours/foregrounds.rb +9 -0
  33. data/lib/vedeu/common.rb +22 -13
  34. data/lib/vedeu/configuration/configuration.rb +6 -0
  35. data/lib/vedeu/cursors/cursor.rb +13 -8
  36. data/lib/vedeu/cursors/refresh.rb +2 -2
  37. data/lib/vedeu/cursors/repository.rb +18 -1
  38. data/lib/vedeu/distributed/server.rb +23 -0
  39. data/lib/vedeu/distributed/templates/default_borders.vedeu +1 -1
  40. data/lib/vedeu/distributed/templates/default_geometries.vedeu +1 -1
  41. data/lib/vedeu/distributed/templates/default_interfaces.vedeu +1 -1
  42. data/lib/vedeu/distributed/templates/default_keymaps.vedeu +1 -1
  43. data/lib/vedeu/distributed/templates/default_menus.vedeu +1 -1
  44. data/lib/vedeu/distributed/templates/default_views.vedeu +1 -1
  45. data/lib/vedeu/dsl/composition.rb +7 -17
  46. data/lib/vedeu/dsl/dsl.rb +12 -0
  47. data/lib/vedeu/dsl/interface.rb +32 -33
  48. data/lib/vedeu/dsl/keymap.rb +13 -19
  49. data/lib/vedeu/dsl/line.rb +3 -13
  50. data/lib/vedeu/dsl/shared.rb +5 -5
  51. data/lib/vedeu/dsl/stream.rb +0 -10
  52. data/lib/vedeu/dsl/use.rb +6 -6
  53. data/lib/vedeu/dsl/view.rb +17 -19
  54. data/lib/vedeu/editor/cursor.rb +32 -10
  55. data/lib/vedeu/editor/document.rb +33 -35
  56. data/lib/vedeu/editor/editor.rb +3 -4
  57. data/lib/vedeu/editor/insert.rb +1 -1
  58. data/lib/vedeu/editor/line.rb +1 -8
  59. data/lib/vedeu/editor/lines.rb +1 -1
  60. data/lib/vedeu/editor/repository.rb +9 -0
  61. data/lib/vedeu/esc/esc.rb +2 -1
  62. data/lib/vedeu/events/aliases.rb +8 -1
  63. data/lib/vedeu/events/event.rb +8 -0
  64. data/lib/vedeu/events/repository.rb +9 -0
  65. data/lib/vedeu/events/trigger.rb +9 -5
  66. data/lib/vedeu/geometry/coordinate.rb +2 -2
  67. data/lib/vedeu/geometry/dsl.rb +32 -38
  68. data/lib/vedeu/geometry/generic_coordinate.rb +1 -1
  69. data/lib/vedeu/geometry/geometry.rb +3 -3
  70. data/lib/vedeu/geometry/null.rb +2 -24
  71. data/lib/vedeu/geometry/repository.rb +9 -0
  72. data/lib/vedeu/groups/clear.rb +7 -3
  73. data/lib/vedeu/groups/dsl.rb +29 -35
  74. data/lib/vedeu/groups/group.rb +28 -4
  75. data/lib/vedeu/groups/refresh.rb +3 -2
  76. data/lib/vedeu/groups/repository.rb +9 -0
  77. data/lib/vedeu/input/capture.rb +1 -1
  78. data/lib/vedeu/input/keymap.rb +2 -1
  79. data/lib/vedeu/input/keymaps.rb +9 -0
  80. data/lib/vedeu/input/mapper.rb +4 -0
  81. data/lib/vedeu/input/translator.rb +1 -1
  82. data/lib/vedeu/logging/debug.rb +13 -0
  83. data/lib/vedeu/logging/log.rb +8 -0
  84. data/lib/vedeu/logging/timer.rb +13 -0
  85. data/lib/vedeu/menus/dsl.rb +8 -18
  86. data/lib/vedeu/menus/menu.rb +8 -4
  87. data/lib/vedeu/menus/null.rb +1 -1
  88. data/lib/vedeu/menus/repository.rb +9 -0
  89. data/lib/vedeu/models/cell.rb +5 -0
  90. data/lib/vedeu/models/escape.rb +5 -0
  91. data/lib/vedeu/models/focus.rb +20 -5
  92. data/lib/vedeu/models/interface.rb +10 -1
  93. data/lib/vedeu/models/interfaces.rb +9 -0
  94. data/lib/vedeu/models/toggleable.rb +19 -4
  95. data/lib/vedeu/models/views/char.rb +6 -1
  96. data/lib/vedeu/models/views/html_char.rb +1 -4
  97. data/lib/vedeu/models/views/line.rb +1 -1
  98. data/lib/vedeu/models/views/view.rb +1 -1
  99. data/lib/vedeu/null/generic.rb +14 -2
  100. data/lib/vedeu/null/interface.rb +1 -1
  101. data/lib/vedeu/null/view.rb +1 -1
  102. data/lib/vedeu/output/clear/interface.rb +5 -1
  103. data/lib/vedeu/output/compressor.rb +8 -4
  104. data/lib/vedeu/output/direct.rb +4 -4
  105. data/lib/vedeu/output/presentation/all.rb +15 -0
  106. data/lib/vedeu/output/presentation/presentation.rb +0 -7
  107. data/lib/vedeu/output/refresh/refresh.rb +1 -3
  108. data/lib/vedeu/output/renderers/all.rb +10 -0
  109. data/lib/vedeu/output/renderers/terminal.rb +1 -3
  110. data/lib/vedeu/repositories/collection.rb +3 -3
  111. data/lib/vedeu/repositories/model.rb +1 -1
  112. data/lib/vedeu/repositories/repository.rb +8 -8
  113. data/lib/vedeu/repositories/store.rb +3 -2
  114. data/lib/vedeu/runtime/application.rb +4 -0
  115. data/lib/vedeu/runtime/bootstrap.rb +1 -1
  116. data/lib/vedeu/runtime/flags.rb +7 -0
  117. data/lib/vedeu/runtime/main_loop.rb +2 -0
  118. data/lib/vedeu/runtime/router.rb +4 -0
  119. data/lib/vedeu/templating/decoder.rb +1 -1
  120. data/lib/vedeu/templating/encoder.rb +1 -1
  121. data/lib/vedeu/templating/helpers.rb +2 -0
  122. data/lib/vedeu/templating/template.rb +1 -1
  123. data/lib/vedeu/terminal/buffer.rb +7 -0
  124. data/lib/vedeu/terminal/terminal.rb +8 -0
  125. data/lib/vedeu/version.rb +1 -1
  126. data/test/lib/vedeu/borders/dsl_test.rb +0 -6
  127. data/test/lib/vedeu/borders/null_test.rb +0 -12
  128. data/test/lib/vedeu/buffers/null_test.rb +0 -37
  129. data/test/lib/vedeu/common_test.rb +33 -0
  130. data/test/lib/vedeu/cursors/cursor_test.rb +1 -1
  131. data/test/lib/vedeu/dsl/composition_test.rb +0 -6
  132. data/test/lib/vedeu/dsl/dsl_test.rb +1 -0
  133. data/test/lib/vedeu/dsl/interface_test.rb +0 -6
  134. data/test/lib/vedeu/dsl/keymap_test.rb +0 -5
  135. data/test/lib/vedeu/dsl/line_test.rb +0 -7
  136. data/test/lib/vedeu/dsl/stream_test.rb +0 -7
  137. data/test/lib/vedeu/editor/cursor_test.rb +23 -8
  138. data/test/lib/vedeu/editor/document_test.rb +27 -23
  139. data/test/lib/vedeu/editor/line_test.rb +0 -30
  140. data/test/lib/vedeu/geometry/dsl_test.rb +0 -5
  141. data/test/lib/vedeu/geometry/null_test.rb +0 -30
  142. data/test/lib/vedeu/groups/dsl_test.rb +0 -6
  143. data/test/lib/vedeu/groups/group_test.rb +15 -7
  144. data/test/lib/vedeu/menus/dsl_test.rb +0 -5
  145. data/test/lib/vedeu/models/cell_test.rb +4 -0
  146. data/test/lib/vedeu/models/escape_test.rb +4 -0
  147. data/test/lib/vedeu/models/views/char_test.rb +4 -0
  148. data/test/lib/vedeu/null/generic_test.rb +13 -0
  149. data/test/lib/vedeu/terminal/buffer_test.rb +3 -2
  150. data/test/lib/vedeu_test.rb +81 -3
  151. data/test/support/examples/borders_app.rb +1 -3
  152. data/test/support/examples/drb_app.rb +1 -3
  153. data/test/support/examples/editor_app.rb +2 -4
  154. data/test/support/examples/focus_app.rb +1 -3
  155. data/test/support/examples/hello_world.rb +1 -6
  156. data/test/support/examples/material_colours_app.rb +1 -3
  157. data/test/support/examples/view_templates_app/view_templates_app.rb +1 -3
  158. data/test/support/helpers/model_test_class.rb +1 -5
  159. data/test/support/who.rb +29 -0
  160. data/test/test_helper.rb +0 -1
  161. metadata +5 -17
  162. data/lib/vedeu/api/all.rb +0 -15
  163. data/lib/vedeu/api/external.rb +0 -194
  164. data/lib/vedeu/api/internal.rb +0 -177
  165. data/test/lib/vedeu/api/external_test.rb +0 -74
  166. data/test/lib/vedeu/api/internal_test.rb +0 -33
  167. data/test/support/examples/typed_commands/command.erb +0 -1
  168. data/test/support/examples/typed_commands/output.erb +0 -1
  169. data/test/support/examples/typed_commands/status.erb +0 -1
  170. data/test/support/examples/typed_commands/typed_commands_app.rb +0 -94
@@ -335,4 +335,10 @@ module Vedeu
335
335
 
336
336
  end # Configuration
337
337
 
338
+ # @!method configure
339
+ # @see Vedeu::Configuration.configure
340
+ # @!method configuration
341
+ # @see Vedeu::Configuration.configuration
342
+ def_delegators Vedeu::Configuration, :configure, :configuration
343
+
338
344
  end # Vedeu
@@ -22,7 +22,7 @@ module Vedeu
22
22
  attr_reader :attributes
23
23
 
24
24
  # @!attribute [r] name
25
- # @return [String]
25
+ # @return [String|Symbol]
26
26
  attr_reader :name
27
27
 
28
28
  # @!attribute [w] ox
@@ -33,10 +33,6 @@ module Vedeu
33
33
  # @return [Fixnum]
34
34
  attr_writer :oy
35
35
 
36
- # @!attribute [r] state
37
- # @return [Boolean|Symbol]
38
- attr_reader :state
39
-
40
36
  # @!attribute [w] x
41
37
  # @return [Fixnum]
42
38
  attr_writer :x
@@ -45,7 +41,7 @@ module Vedeu
45
41
  # @return [Fixnum]
46
42
  attr_writer :y
47
43
 
48
- # @param attributes [Hash] See #initialize
44
+ # @param (see #initialize)
49
45
  # @return [Vedeu::Cursors::Cursor]
50
46
  def self.store(attributes)
51
47
  new(attributes).store
@@ -54,8 +50,8 @@ module Vedeu
54
50
  # Returns a new instance of Vedeu::Cursors::Cursor.
55
51
  #
56
52
  # @param attributes [Hash]
57
- # @option attributes name [String] The name of the interface
58
- # this cursor belongs to.
53
+ # @option attributes name [String|Symbol] The name of the
54
+ # interface this cursor belongs to.
59
55
  # @option attributes ox [Fixnum] The offset x coordinate.
60
56
  # @option attributes oy [Fixnum] The offset y coordinate.
61
57
  # @option attributes repository
@@ -280,4 +276,13 @@ module Vedeu
280
276
 
281
277
  end # Cursors
282
278
 
279
+ # @!method hide_cursor
280
+ # @see Vedeu::Toggleable::ClassMethods.hide
281
+ # @!method show_cursor
282
+ # @see Vedeu::Toggleable::ClassMethods#show
283
+ # @!method toggle_cursor
284
+ # @see Vedeu::Toggleable::ClassMethods#toggle
285
+ def_delegators Vedeu::Cursors::Cursor, :hide_cursor, :show_cursor,
286
+ :toggle_cursor
287
+
283
288
  end # Vedeu
@@ -21,7 +21,7 @@ module Vedeu
21
21
 
22
22
  # Returns a new instance of Vedeu::Cursors::Refresh.
23
23
  #
24
- # @param name [String] The name of the cursor.
24
+ # @param name [String|Symbol] The name of the cursor.
25
25
  # @return [Vedeu::Cursors::Refresh]
26
26
  def initialize(name = nil)
27
27
  @name = name || Vedeu.focus
@@ -44,7 +44,7 @@ module Vedeu
44
44
  protected
45
45
 
46
46
  # @!attribute [r] name
47
- # @return [String]
47
+ # @return [String|Symbol]
48
48
  attr_reader :name
49
49
 
50
50
  private
@@ -10,8 +10,12 @@ module Vedeu
10
10
 
11
11
  class << self
12
12
 
13
+ # Fetch the cursor of the currently focussed interface/view.
14
+ #
15
+ # @example
16
+ # Vedeu.cursor
17
+ #
13
18
  # @return [Vedeu::Cursors::Cursor]
14
- # @see Vedeu::API::External.cursor
15
19
  def cursor
16
20
  cursors.by_name(Vedeu.focus) if Vedeu.focus
17
21
  end
@@ -31,4 +35,17 @@ module Vedeu
31
35
 
32
36
  end # Cursors
33
37
 
38
+ # @!method cursor
39
+ # @see Vedeu::Cursors::Repository.cursor
40
+ def_delegators Vedeu::Cursors::Repository, :cursor
41
+
42
+ # Manipulate the repository of cursors.
43
+ #
44
+ # @example
45
+ # Vedeu.cursors
46
+ #
47
+ # @!method cursors
48
+ # @return [Vedeu::Cursors::Repository]
49
+ def_delegators Vedeu::Cursors::Repository, :cursors
50
+
34
51
  end # Vedeu
@@ -87,6 +87,9 @@ module Vedeu
87
87
 
88
88
  # Restart the DRb server.
89
89
  #
90
+ # @example
91
+ # Vedeu.drb_restart
92
+ #
90
93
  # @return [void]
91
94
  def restart
92
95
  log('Attempting to restart')
@@ -128,6 +131,9 @@ module Vedeu
128
131
 
129
132
  # Start the DRb server.
130
133
  #
134
+ # @example
135
+ # Vedeu.drb_start
136
+ #
131
137
  # @return [Vedeu::Distributed::Server]
132
138
  def start
133
139
  log('Attempting to start')
@@ -148,6 +154,9 @@ module Vedeu
148
154
 
149
155
  # Fetch the status of the DRb server.
150
156
  #
157
+ # @example
158
+ # Vedeu.drb_status
159
+ #
151
160
  # @return [Symbol]
152
161
  def status
153
162
  log('Fetching status')
@@ -169,6 +178,9 @@ module Vedeu
169
178
 
170
179
  # Stop the DRb server.
171
180
  #
181
+ # @example
182
+ # Vedeu.drb_stop
183
+ #
172
184
  # @return [void]
173
185
  def stop
174
186
  log('Attempting to stop')
@@ -225,4 +237,15 @@ module Vedeu
225
237
 
226
238
  end # Distributed
227
239
 
240
+ # @!method drb_restart
241
+ # @see Vedeu::Distributed::Server#restart
242
+ # @!method drb_start
243
+ # @see Vedeu::Distributed::Server#start
244
+ # @!method drb_status
245
+ # @see Vedeu::Distributed::Server#status
246
+ # @!method drb_stop
247
+ # @see Vedeu::Distributed::Server#stop
248
+ def_delegators Vedeu::Distributed::Server, :drb_restart, :drb_start,
249
+ :drb_status, :drb_stop
250
+
228
251
  end # Vedeu
@@ -1,4 +1,4 @@
1
- Vedeu.border 'test_interface' do
1
+ Vedeu.border :test_interface do
2
2
  # Define colour and style of border
3
3
  colour foreground: '#ffff00', background: '#0000ff'
4
4
  style 'normal'
@@ -1,4 +1,4 @@
1
- Vedeu.geometry 'test_interface' do
1
+ Vedeu.geometry :test_interface do
2
2
  # centred!
3
3
  height 6
4
4
  width 26
@@ -1,4 +1,4 @@
1
- Vedeu.interface 'test_interface' do
1
+ Vedeu.interface :test_interface do
2
2
  colour foreground: '#ff0000', background: '#000000'
3
3
  cursor!
4
4
  end
@@ -1,4 +1,4 @@
1
- Vedeu.keymap 'test_interface' do
1
+ Vedeu.keymap :test_interface do
2
2
  key(:up, 'k') { Vedeu.trigger(:_cursor_up_) }
3
3
  key(:right, 'l') { Vedeu.trigger(:_cursor_right_) }
4
4
  key(:down, 'j') { Vedeu.trigger(:_cursor_down_) }
@@ -1,3 +1,3 @@
1
- Vedeu.menu 'test_interface' do
1
+ Vedeu.menu :test_interface do
2
2
  # ...
3
3
  end
@@ -1,5 +1,5 @@
1
1
  Vedeu.renders do
2
- view 'test_interface' do
2
+ view :test_interface do
3
3
  lines do
4
4
  line 'a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1'
5
5
  line 'a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2'
@@ -42,16 +42,6 @@ module Vedeu
42
42
 
43
43
  include Vedeu::DSL
44
44
 
45
- # Returns an instance of DSL::Composition.
46
- #
47
- # @param model [Vedeu::Views::Composition]
48
- # @param client [Object]
49
- # @return [Vedeu::DSL::Composition]
50
- def initialize(model, client = nil)
51
- @model = model
52
- @client = client
53
- end
54
-
55
45
  # Define a view.
56
46
  #
57
47
  # A view is just an Interface object.
@@ -61,13 +51,13 @@ module Vedeu
61
51
  # don't need to specify everything again.
62
52
  #
63
53
  # @todo More documentation required.
64
- # @param name [String] The name of the interface you are
54
+ # @param name [String|Symbol] The name of the interface you are
65
55
  # targetting for this view.
66
56
  # @param block [Proc] The directives you wish to send to this
67
57
  # interface.
68
58
  #
69
59
  # @example
70
- # view 'my_interface' do
60
+ # view :my_interface do
71
61
  # # ...
72
62
  # end
73
63
  #
@@ -85,14 +75,14 @@ module Vedeu
85
75
  #
86
76
  # @example
87
77
  # Vedeu.renders do
88
- # template_for('my_interface',
78
+ # template_for(:my_interface,
89
79
  # '/path/to/template.erb',
90
80
  # @some_object, options)
91
81
  # end
92
82
  #
93
83
  # @todo More documentation required.
94
84
  #
95
- # @param name [String] The name of interface for which this
85
+ # @param name [String|Symbol] The name of interface for which this
96
86
  # template's content belongs to.
97
87
  # @param filename [String] The filename (including path) to the
98
88
  # template to be used. Yoy can use `File.dirname(__FILE__)` to
@@ -123,7 +113,7 @@ module Vedeu
123
113
 
124
114
  private
125
115
 
126
- # @param name [String]
116
+ # @param name [String|Symbol]
127
117
  # @param lines [Vedeu::Views::Lines]
128
118
  # @return [Hash]
129
119
  def template_attributes(name, lines)
@@ -133,7 +123,7 @@ module Vedeu
133
123
  # Return the current attributes combined with the existing
134
124
  # interface attributes defined by the interface.
135
125
  #
136
- # @param name [String] The name of the interface.
126
+ # @param name [String|Symbol] The name of the interface.
137
127
  # @return [Hash]
138
128
  def new_attributes(name)
139
129
  attributes.merge!(existing_attributes(name))
@@ -141,7 +131,7 @@ module Vedeu
141
131
 
142
132
  # Retrieve the attributes of the interface by name.
143
133
  #
144
- # @param name [String] The name of the interface.
134
+ # @param name [String|Symbol] The name of the interface.
145
135
  # @return [Hash]
146
136
  def existing_attributes(name)
147
137
  Vedeu.interfaces.by_name(name).attributes
data/lib/vedeu/dsl/dsl.rb CHANGED
@@ -4,6 +4,18 @@ module Vedeu
4
4
  #
5
5
  module DSL
6
6
 
7
+ # Returns an instance of the DSL class including {Vedeu::DSL}.
8
+ #
9
+ # @param model [void] The model class which the DSL class is
10
+ # wrapping.
11
+ # @param client [void] The class where the DSL methods are being
12
+ # used.
13
+ # @return [void] An instance of the DSL class.
14
+ def initialize(model, client = nil)
15
+ @model = model
16
+ @client = client
17
+ end
18
+
7
19
  protected
8
20
 
9
21
  # @!attribute [r] client
@@ -22,12 +22,12 @@ module Vedeu
22
22
  # define your the views of your application without their
23
23
  # content.
24
24
  #
25
- # Vedeu.interface 'my_interface' do
25
+ # Vedeu.interface :my_interface do
26
26
  # # ... some code
27
27
  # end
28
28
  #
29
- # @param name [String] The name of the interface. Used to
30
- # reference the interface throughout your application's
29
+ # @param name [String|Symbol] The name of the interface. Used
30
+ # to reference the interface throughout your application's
31
31
  # execution lifetime.
32
32
  # @param block [Proc] A set of attributes which define the
33
33
  # features of the interface.
@@ -54,6 +54,7 @@ module Vedeu
54
54
  # registered, and also adds interface's name to list of
55
55
  # focussable interfaces.
56
56
  #
57
+ # @param name [String|Symbol]
57
58
  # @see Vedeu::Buffers::Buffer
58
59
  # @return [Vedeu::Buffers::Buffer]
59
60
  def add_buffers!(name)
@@ -63,6 +64,7 @@ module Vedeu
63
64
  # Registers a new cursor for the interface unless already
64
65
  # registered.
65
66
  #
67
+ # @param name [String|Symbol]
66
68
  # @return [Vedeu::Cursors::Cursor]
67
69
  def add_cursor!(name)
68
70
  Vedeu::Cursors::Cursor.store(name: name)
@@ -71,6 +73,7 @@ module Vedeu
71
73
  # Registers interface name in focus list unless already
72
74
  # registered.
73
75
  #
76
+ # @param name [String|Symbol]
74
77
  # @return [void]
75
78
  def add_focusable!(name)
76
79
  Vedeu.focusable.add(name) unless Vedeu.focusable.registered?(name)
@@ -86,16 +89,6 @@ module Vedeu
86
89
 
87
90
  end # Eigenclass
88
91
 
89
- # Returns an instance of Vedeu::DSL::Interface.
90
- #
91
- # @param model [Vedeu::DSL::Interface]
92
- # @param client [Object]
93
- # @return [Vedeu::DSL::Interface]
94
- def initialize(model, client = nil)
95
- @model = model
96
- @client = client
97
- end
98
-
99
92
  # Set the cursor visibility on an interface.
100
93
  #
101
94
  # @param value [Boolean] Any value other than nil or false will
@@ -103,7 +96,7 @@ module Vedeu
103
96
  # to true.
104
97
  #
105
98
  # @example
106
- # Vedeu.interface 'my_interface' do
99
+ # Vedeu.interface :my_interface do
107
100
  # cursor true # => show the cursor for this interface
108
101
  # # or...
109
102
  # cursor :show # => both of these are equivalent to line
@@ -113,14 +106,14 @@ module Vedeu
113
106
  # # ...
114
107
  # end
115
108
  #
116
- # Vedeu.interface 'my_interface' do
109
+ # Vedeu.interface :my_interface do
117
110
  # cursor false # => hide the cursor for this interface
118
111
  # # or...
119
112
  # cursor nil # => as above
120
113
  # # ...
121
114
  # end
122
115
  #
123
- # Vedeu.view 'my_interface' do
116
+ # Vedeu.view :my_interface do
124
117
  # cursor true # => Specify the visibility of the cursor when
125
118
  # # the view is rendered.
126
119
  # # ...
@@ -147,7 +140,7 @@ module Vedeu
147
140
  # @param value [Fixnum|Float] Time in seconds. (0.5 = 500ms).
148
141
  #
149
142
  # @example
150
- # Vedeu.interface 'my_interface' do
143
+ # Vedeu.interface :my_interface do
151
144
  # delay 0.5 # interface will not update more often than
152
145
  # # every 500ms.
153
146
  # # ...
@@ -166,7 +159,7 @@ module Vedeu
166
159
  # focus. However, this behaviour can be overridden:
167
160
  #
168
161
  # ```ruby
169
- # Vedeu.focus_by_name 'some_interface'
162
+ # Vedeu.focus_by_name :some_interface
170
163
  # ```
171
164
  #
172
165
  # When the above is specified (outside of a `Vedeu.interface`
@@ -182,13 +175,13 @@ module Vedeu
182
175
  # multiple interfaces at once.
183
176
  #
184
177
  # @example
185
- # Vedeu.interface 'my_interface' do
186
- # group 'main_screen'
178
+ # Vedeu.interface :my_interface do
179
+ # group :main_screen
187
180
  # # ...
188
181
  # end
189
182
  #
190
- # @param name [String] The name of the group to which this
191
- # interface should belong.
183
+ # @param name [String|Symbol] The name of the group to which
184
+ # this interface should belong.
192
185
  # @return [Vedeu::Groups::Group]
193
186
  def group(name)
194
187
  return false unless present?(name)
@@ -198,6 +191,8 @@ module Vedeu
198
191
  Vedeu.groups.by_name(name).add(model.name)
199
192
  end
200
193
 
194
+ # @param name [String|Symbol] The name of the interface to which
195
+ # this keymap should belong.
201
196
  # @see Vedeu::DSL::Keymap.keymap
202
197
  def keymap(name = model.name, &block)
203
198
  Vedeu.keymap(name, &block)
@@ -207,15 +202,15 @@ module Vedeu
207
202
  # The name of the interface. Used to reference the interface
208
203
  # throughout your application's execution lifetime.
209
204
  #
210
- # @param value [String]
205
+ # @param value [String|Symbol]
211
206
  #
212
207
  # @example
213
208
  # Vedeu.interface do
214
- # name 'my_interface'
209
+ # name :my_interface
215
210
  # # ...
216
211
  # end
217
212
  #
218
- # @return [String]
213
+ # @return [String|Symbol]
219
214
  def name(value)
220
215
  model.name = value
221
216
  end
@@ -230,7 +225,7 @@ module Vedeu
230
225
  # Set the interface to visible.
231
226
  #
232
227
  # @example
233
- # Vedeu.interface('my_interface') do
228
+ # Vedeu.interface :my_interface do
234
229
  # show!
235
230
  #
236
231
  # # ... some code
@@ -244,7 +239,7 @@ module Vedeu
244
239
  # Set the interface to invisible.
245
240
  #
246
241
  # @example
247
- # Vedeu.interface('my_interface') do
242
+ # Vedeu.interface :my_interface do
248
243
  # # ... some code
249
244
  # end
250
245
  #
@@ -255,8 +250,8 @@ module Vedeu
255
250
 
256
251
  # Use a value from another model.
257
252
  #
258
- # @param name [String] The name of the interface model you wish
259
- # to use a value from.
253
+ # @param name [String|Symbol] The name of the interface model
254
+ # you wish to use a value from.
260
255
  # @return [Vedeu::Models::Interface]
261
256
  def use(name)
262
257
  model.repository.by_name(name)
@@ -268,21 +263,21 @@ module Vedeu
268
263
  # evaluate to true.
269
264
  #
270
265
  # @example
271
- # Vedeu.interface 'my_interface' do
266
+ # Vedeu.interface :my_interface do
272
267
  # visible true # => show the interface
273
268
  # # or...
274
269
  # show! # => as above
275
270
  # # ... some code
276
271
  # end
277
272
  #
278
- # Vedeu.interface 'my_interface' do
273
+ # Vedeu.interface :my_interface do
279
274
  # visible false # => hide the interface
280
275
  # # or...
281
276
  # hide! # => as above
282
277
  # # ... some code
283
278
  # end
284
279
  #
285
- # Vedeu.view 'my_interface' do
280
+ # Vedeu.view :my_interface do
286
281
  # visible false
287
282
  # # ... some code
288
283
  # end
@@ -304,7 +299,7 @@ module Vedeu
304
299
  # --2--
305
300
  # --1-- # rendered first
306
301
  #
307
- # Vedeu.interface 'my_interface' do
302
+ # Vedeu.interface :my_interface do
308
303
  # zindex 3
309
304
  # # ...
310
305
  # end
@@ -321,4 +316,8 @@ module Vedeu
321
316
 
322
317
  end # DSL
323
318
 
319
+ # @!method interface
320
+ # @see Vedeu::DSL::Interface.interface
321
+ def_delegators Vedeu::DSL::Interface, :interface
322
+
324
323
  end # Vedeu