vedeu 0.6.20 → 0.6.21

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -104,8 +104,8 @@ module Vedeu
104
104
  # border is to be shown for this interface.
105
105
  # @option attributes horizontal [String] The horizontal border
106
106
  # character.
107
- # @option attributes name [String] The name of the interface to
108
- # which this border relates.
107
+ # @option attributes name [String|Symbol] The name of the
108
+ # interface to which this border relates.
109
109
  # @option attributes style [Vedeu::Presentation::Style]
110
110
  # @option attributes show_bottom [Boolean] Indicate whether the
111
111
  # bottom border is to be shown.
@@ -12,12 +12,12 @@ module Vedeu
12
12
 
13
13
  # Specify the border of an interface or view with a simple DSL.
14
14
  #
15
- # Vedeu.border 'some_interface' do
15
+ # Vedeu.border :some_interface do
16
16
  # # ...
17
17
  # end
18
18
  #
19
- # @param name [String] The name of the interface or view to
20
- # which this border belongs.
19
+ # @param name [String|Symbol] The name of the interface or view
20
+ # to which this border belongs.
21
21
  # @param block [Proc]
22
22
  # @raise [Vedeu::Error::RequiresBlock]
23
23
  # @return [Vedeu::Borders::Border]
@@ -27,20 +27,10 @@ module Vedeu
27
27
  Vedeu::Borders::Border.build(enabled: true, name: name, &block).store
28
28
  end
29
29
 
30
- # Returns an instance of Borders::DSL.
31
- #
32
- # @param model [Vedeu::Borders::Border]
33
- # @param client [Object]
34
- # @return [Vedeu::Borders::DSL]
35
- def initialize(model, client = nil)
36
- @model = model
37
- @client = client
38
- end
39
-
40
30
  # Set the character to be used to draw the bottom left corner of
41
31
  # the border.
42
32
  #
43
- # Vedeu.border 'border_demo' do
33
+ # Vedeu.border :border_demo do
44
34
  # bottom_left '+'
45
35
  # # ... some code
46
36
  # end
@@ -56,7 +46,7 @@ module Vedeu
56
46
  # Set the character to be used to draw the bottom right corner
57
47
  # of the border.
58
48
  #
59
- # Vedeu.border 'border_demo' do
49
+ # Vedeu.border :border_demo do
60
50
  # bottom_right '+'
61
51
  # # ... some code
62
52
  # end
@@ -71,7 +61,7 @@ module Vedeu
71
61
 
72
62
  # Disable the border:
73
63
  #
74
- # Vedeu.border 'border_demo' do
64
+ # Vedeu.border :border_demo do
75
65
  # disable!
76
66
  # # ... some other code (will be ignored)
77
67
  # end
@@ -92,7 +82,7 @@ module Vedeu
92
82
  # (Borders are enabled by default when defined for an
93
83
  # interface).
94
84
  #
95
- # Vedeu.border 'border_demo' do
85
+ # Vedeu.border :border_demo do
96
86
  # enable!
97
87
  # # ... some code
98
88
  # end
@@ -112,7 +102,7 @@ module Vedeu
112
102
  # Set the character to be used to draw a horizontal part of the
113
103
  # border.
114
104
  #
115
- # Vedeu.border 'border_demo' do
105
+ # Vedeu.border :border_demo do
116
106
  # horizontal '-'
117
107
  # # ... some code
118
108
  # end
@@ -127,7 +117,7 @@ module Vedeu
127
117
 
128
118
  # Enable/disable the bottom border.
129
119
  #
130
- # Vedeu.border 'border_demo' do
120
+ # Vedeu.border :border_demo do
131
121
  # bottom true # or...
132
122
  # bottom false # or...
133
123
  # hide_bottom! # or...
@@ -162,7 +152,7 @@ module Vedeu
162
152
 
163
153
  # Enable/disable the left border.
164
154
  #
165
- # Vedeu.border 'border_demo' do
155
+ # Vedeu.border :border_demo do
166
156
  # left true # or...
167
157
  # left false # or...
168
158
  # hide_left! # or...
@@ -197,7 +187,7 @@ module Vedeu
197
187
 
198
188
  # Enable/disable the right border.
199
189
  #
200
- # Vedeu.border 'border_demo' do
190
+ # Vedeu.border :border_demo do
201
191
  # right true # or...
202
192
  # right false # or...
203
193
  # hide_right! # or...
@@ -233,7 +223,7 @@ module Vedeu
233
223
  # If you have you are showing a top border, you could add a
234
224
  # title.
235
225
  #
236
- # Vedeu.border 'border_demo' do
226
+ # Vedeu.border :border_demo do
237
227
  # title 'My Cool Title'
238
228
  # # ... some code
239
229
  # end
@@ -252,7 +242,7 @@ module Vedeu
252
242
  # If you have you are showing a bottom border, you could add a
253
243
  # caption.
254
244
  #
255
- # Vedeu.border 'border_demo' do
245
+ # Vedeu.border :border_demo do
256
246
  # caption 'My Cool Caption'
257
247
  # # ... some code
258
248
  # end
@@ -270,7 +260,7 @@ module Vedeu
270
260
 
271
261
  # Enable/disable the top border.
272
262
  #
273
- # Vedeu.border 'border_demo' do
263
+ # Vedeu.border :border_demo do
274
264
  # top true # or...
275
265
  # top false # or...
276
266
  # hide_top! # or...
@@ -306,7 +296,7 @@ module Vedeu
306
296
  # Set the character to be used to draw the top left corner of
307
297
  # the border.
308
298
  #
309
- # Vedeu.border 'border_demo' do
299
+ # Vedeu.border :border_demo do
310
300
  # top_left '+'
311
301
  # # ... some code
312
302
  # end
@@ -322,7 +312,7 @@ module Vedeu
322
312
  # Set the character to be used to draw the top right corner of
323
313
  # the border.
324
314
  #
325
- # Vedeu.border 'border_demo' do
315
+ # Vedeu.border :border_demo do
326
316
  # top_right '+'
327
317
  # # ... some code
328
318
  # end
@@ -338,7 +328,7 @@ module Vedeu
338
328
  # Set the character to be used to draw a vertical part of the
339
329
  # border.
340
330
  #
341
- # Vedeu.border 'border_demo' do
331
+ # Vedeu.border :border_demo do
342
332
  # vertical '|'
343
333
  # # ... some code
344
334
  # end
@@ -355,4 +345,8 @@ module Vedeu
355
345
 
356
346
  end # DSL
357
347
 
348
+ # @!method border
349
+ # @see Vedeu::Borders::DSL.border
350
+ def_delegators Vedeu::Borders::DSL, :border
351
+
358
352
  end # Vedeu
@@ -8,13 +8,13 @@ module Vedeu
8
8
  class Null
9
9
 
10
10
  # @!attribute [r] name
11
- # @return [String|NilClass]
11
+ # @return [String|Symbol|NilClass]
12
12
  attr_reader :name
13
13
 
14
14
  # Returns a new instance of Vedeu::Borders::Null.
15
15
  #
16
16
  # @param attributes [Hash<Symbol => void>]
17
- # @option attributes name [String|NilClass]
17
+ # @option attributes name [String|Symbol|NilClass]
18
18
  # @return [Vedeu::Borders::Null]
19
19
  def initialize(attributes = {})
20
20
  @attributes = attributes
@@ -45,24 +45,11 @@ module Vedeu
45
45
  end
46
46
  alias_method :yn, :byn
47
47
 
48
- # The null border should not be enabled, so that named geometry
49
- # or null geometry is used.
50
- #
51
- # @return [FalseClass]
52
- def enabled?
53
- false
54
- end
55
-
56
48
  # @return [Fixnum]
57
49
  def height
58
50
  (by..byn).size
59
51
  end
60
52
 
61
- # @return [Boolean]
62
- def null?
63
- true
64
- end
65
-
66
53
  # @return [Array]
67
54
  def render
68
55
  []
@@ -40,7 +40,7 @@ module Vedeu
40
40
  :yn
41
41
 
42
42
  # @return [Array<Array<Vedeu::Views::Char>>]
43
- # @see Vedeu::Borders::Render#initialize
43
+ # @param (see #initialize)
44
44
  def self.with(border)
45
45
  new(border).render
46
46
  end
@@ -16,4 +16,13 @@ module Vedeu
16
16
 
17
17
  end # Borders
18
18
 
19
+ # Manipulate the repository of borders.
20
+ #
21
+ # @example
22
+ # Vedeu.borders
23
+ #
24
+ # @!method borders
25
+ # @return [Vedeu::Borders::Repository]
26
+ def_delegators Vedeu::Borders::Repository, :borders
27
+
19
28
  end # Vedeu
@@ -37,8 +37,8 @@ module Vedeu
37
37
  # Return a new instance of Buffer. Generally a Buffer is
38
38
  # initialized with only a 'name' and 'back' parameter.
39
39
  #
40
- # @option attributes name [String] The name of the interface for
41
- # which the buffer belongs.
40
+ # @option attributes name [String|Symbol] The name of the
41
+ # interface for which the buffer belongs.
42
42
  # @option attributes back [Vedeu::Views::View]
43
43
  # @option attributes front [Vedeu::Views::View]
44
44
  # @option attributes previous [Vedeu::Views::View]
@@ -5,37 +5,7 @@ module Vedeu
5
5
  # Provides a non-existent Vedeu::Buffers::Buffer that acts like
6
6
  # the real thing, but does nothing.
7
7
  #
8
- class Null
9
-
10
- # @!attribute [r] name
11
- # @return [String]
12
- attr_reader :name
13
-
14
- # Returns a new instance of Vedeu::Buffers::Null.
15
- #
16
- # @param attributes [Hash<Symbol => void>]
17
- # @option attributes name [String|NilClass]
18
- # @return [Vedeu::Buffers::Null]
19
- def initialize(attributes = {})
20
- @attributes = attributes
21
- @name = @attributes[:name]
22
- end
23
-
24
- # @return [NilClass]
25
- def null(*)
26
- nil
27
- end
28
- alias_method :add, :null
29
- alias_method :clear, :null
30
- alias_method :hide, :null
31
- alias_method :render, :null
32
- alias_method :show, :null
33
- alias_method :toggle, :null
34
-
35
- # @return [Boolean]
36
- def null?
37
- true
38
- end
8
+ class Null < Vedeu::Null::Generic
39
9
 
40
10
  end # Null
41
11
 
@@ -11,22 +11,22 @@ module Vedeu
11
11
 
12
12
  include Vedeu::Common
13
13
 
14
- # @param name [String] The name of the interface to be refreshed
15
- # using the named buffer.
16
- # @return [Array|Vedeu::Error::ModelNotFound]
14
+ # @param (see #initialize)
15
+ # @return (see #by_name)
17
16
  def self.by_name(name)
18
17
  new(name).by_name
19
18
  end
20
19
 
21
20
  # Return a new instance of Vedeu::Buffers::Refresh.
22
21
  #
23
- # @param name [String]
22
+ # @param name [String|Symbol] The name of the interface to be refreshed
23
+ # using the named buffer.
24
24
  # @return [Vedeu::Buffers::Refresh]
25
25
  def initialize(name)
26
26
  @name = name
27
27
  end
28
28
 
29
- # @return [void]
29
+ # @return [Array|Vedeu::Error::ModelNotFound]
30
30
  def by_name
31
31
  Vedeu.timer("Refresh Buffer: '#{buffer_name}'") do
32
32
  Vedeu.buffers.by_name(buffer_name).render
@@ -35,15 +35,15 @@ module Vedeu
35
35
 
36
36
  protected
37
37
 
38
- # # @!attribute [r] name
39
- # @return [String]
38
+ # @!attribute [r] name
39
+ # @return [String|Symbol]
40
40
  attr_reader :name
41
41
 
42
42
  private
43
43
 
44
44
  # @raise [Vedeu::Error::MissingRequired] When the name is empty
45
45
  # or nil.
46
- # @return [String]
46
+ # @return [String|Symbol]
47
47
  def buffer_name
48
48
  return name if present?(name)
49
49
 
@@ -21,4 +21,13 @@ module Vedeu
21
21
 
22
22
  end # Buffers
23
23
 
24
+ # Manipulate the repository of buffers.
25
+ #
26
+ # @example
27
+ # Vedeu.buffers
28
+ #
29
+ # @!method buffers
30
+ # @return [Vedeu::Buffers::Repository]
31
+ def_delegators Vedeu::Buffers::Repository, :buffers
32
+
24
33
  end # Vedeu
@@ -6,6 +6,11 @@ module Vedeu
6
6
  #
7
7
  class Backgrounds < Vedeu::Colours::Repository
8
8
 
9
+ # Manipulate the repository of background colours.
10
+ #
11
+ # @example
12
+ # Vedeu.background_colours
13
+ #
9
14
  # @return [Vedeu::Colours::Backgrounds]
10
15
  # @see Vedeu::Repositories::Repository
11
16
  def self.background_colours
@@ -16,4 +21,8 @@ module Vedeu
16
21
 
17
22
  end # Colours
18
23
 
24
+ # @!method background_colours
25
+ # @return [Vedeu::Colours::Backgrounds]
26
+ def_delegators Vedeu::Colours::Backgrounds, :background_colours
27
+
19
28
  end # Vedeu
@@ -46,7 +46,7 @@ module Vedeu
46
46
  attr_reader :foreground
47
47
 
48
48
  # @param value [Vedeu::Colours::Colour|Hash<Symbol => void>]
49
- # @return [Object]
49
+ # @return [Vedeu::Colours::Colour]
50
50
  def self.coerce(value)
51
51
  return value if value.is_a?(self)
52
52
  return new unless value.is_a?(Hash)
@@ -6,6 +6,11 @@ module Vedeu
6
6
  #
7
7
  class Foregrounds < Vedeu::Colours::Repository
8
8
 
9
+ # Manipulate the repository of foreground colours.
10
+ #
11
+ # @example
12
+ # Vedeu.foreground_colours
13
+ #
9
14
  # @return [Vedeu::Colours::Foregrounds]
10
15
  # @see Vedeu::Repositories::Repository
11
16
  def self.foreground_colours
@@ -16,4 +21,8 @@ module Vedeu
16
21
 
17
22
  end # Colours
18
23
 
24
+ # @!method foreground_colours
25
+ # @return [Vedeu::Colours::Foregrounds]
26
+ def_delegators Vedeu::Colours::Foregrounds, :foreground_colours
27
+
19
28
  end # Vedeu
data/lib/vedeu/common.rb CHANGED
@@ -4,6 +4,15 @@ module Vedeu
4
4
  #
5
5
  module Common
6
6
 
7
+ # Returns a boolean indicating whether a variable is nil or empty.
8
+ #
9
+ # @param variable [String|Symbol|Array|Fixnum] The variable to
10
+ # check.
11
+ # @return [Boolean]
12
+ def absent?(variable)
13
+ !present?(variable)
14
+ end
15
+
7
16
  # Removes the module part from the expression in the string.
8
17
  #
9
18
  # @example
@@ -17,6 +26,19 @@ module Vedeu
17
26
  klass[(klass.rindex('::') + 2)..-1]
18
27
  end
19
28
 
29
+ # Returns a boolean indicating whether a variable has a useful
30
+ # value.
31
+ #
32
+ # @param variable [String|Symbol|Array|Fixnum] The variable to
33
+ # check.
34
+ # @return [Boolean]
35
+ def present?(variable)
36
+ return true if variable.is_a?(Fixnum)
37
+ return true unless variable.nil? || variable.empty?
38
+
39
+ false
40
+ end
41
+
20
42
  # Converts a class name to a lowercase snake case string.
21
43
  #
22
44
  # @example
@@ -35,19 +57,6 @@ module Vedeu
35
57
  name
36
58
  end
37
59
 
38
- # Returns a boolean indicating whether a variable has a useful
39
- # value.
40
- #
41
- # @param variable [String|Symbol|Array|Fixnum] The variable to
42
- # check.
43
- # @return [Boolean]
44
- def present?(variable)
45
- return true if variable.is_a?(Fixnum)
46
- return true unless variable.nil? || variable.empty?
47
-
48
- false
49
- end
50
-
51
60
  end # Common
52
61
 
53
62
  end # Vedeu