vedeu 0.8.15 → 0.8.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/docs/dsl/by_method/clear_by_group.md +4 -1
  3. data/docs/dsl/by_method/clear_by_name.md +4 -1
  4. data/docs/dsl/by_method/clear_content_by_name.md +4 -1
  5. data/docs/dsl/by_method/documents.md +5 -1
  6. data/docs/dsl/by_method/geometry/align.md +54 -8
  7. data/examples/dsl_alignment.rb +9 -9
  8. data/examples/dsl_colours.rb +1 -1
  9. data/examples/dsl_editor.rb +1 -1
  10. data/examples/dsl_hello_worlds.rb +2 -2
  11. data/lib/vedeu.rb +7 -1
  12. data/lib/vedeu/borders/dsl.rb +1 -2
  13. data/lib/vedeu/borders/refresh.rb +1 -2
  14. data/lib/vedeu/borders/title.rb +1 -1
  15. data/lib/vedeu/buffers/refresh.rb +1 -2
  16. data/lib/vedeu/cells/support/html.rb +1 -1
  17. data/lib/vedeu/coercers/chars.rb +1 -1
  18. data/lib/vedeu/coercers/coercer.rb +0 -3
  19. data/lib/vedeu/coercers/colour.rb +1 -1
  20. data/lib/vedeu/coercers/editor_line.rb +1 -1
  21. data/lib/vedeu/coercers/lines.rb +1 -1
  22. data/lib/vedeu/colours/backgrounds.rb +2 -0
  23. data/lib/vedeu/colours/foregrounds.rb +2 -0
  24. data/lib/vedeu/cursors/move.rb +1 -1
  25. data/lib/vedeu/cursors/refresh.rb +1 -2
  26. data/lib/vedeu/dsl/border.rb +1 -4
  27. data/lib/vedeu/dsl/geometry.rb +2 -6
  28. data/lib/vedeu/dsl/use.rb +1 -2
  29. data/lib/vedeu/dsl/view.rb +5 -7
  30. data/lib/vedeu/editor/cropper.rb +1 -1
  31. data/lib/vedeu/editor/editor.rb +1 -1
  32. data/lib/vedeu/events/event.rb +3 -4
  33. data/lib/vedeu/events/trigger.rb +1 -2
  34. data/lib/vedeu/geometries/area/area.rb +1 -1
  35. data/lib/vedeu/groups/clear.rb +3 -8
  36. data/lib/vedeu/groups/dsl.rb +2 -2
  37. data/lib/vedeu/groups/refresh.rb +2 -3
  38. data/lib/vedeu/input/capture.rb +1 -1
  39. data/lib/vedeu/input/dsl.rb +1 -2
  40. data/lib/vedeu/input/mapper.rb +2 -2
  41. data/lib/vedeu/interfaces/clear.rb +3 -14
  42. data/lib/vedeu/interfaces/dsl.rb +10 -15
  43. data/lib/vedeu/interfaces/repository.rb +3 -3
  44. data/lib/vedeu/menus/dsl.rb +1 -2
  45. data/lib/vedeu/models/focus.rb +4 -5
  46. data/lib/vedeu/models/toggleable.rb +8 -7
  47. data/lib/vedeu/output/compressor_cache.rb +15 -4
  48. data/lib/vedeu/output/refresh.rb +3 -3
  49. data/lib/vedeu/output/viewport.rb +4 -4
  50. data/lib/vedeu/plugins/plugin.rb +1 -1
  51. data/lib/vedeu/plugins/plugins.rb +2 -2
  52. data/lib/vedeu/repositories/collection.rb +2 -2
  53. data/lib/vedeu/repositories/repository.rb +6 -6
  54. data/lib/vedeu/repositories/store.rb +1 -1
  55. data/lib/vedeu/sentence.rb +2 -2
  56. data/lib/vedeu/version.rb +1 -1
  57. data/lib/vedeu/views/chars.rb +1 -1
  58. data/test/lib/vedeu/application/controller_test.rb +6 -0
  59. data/test/lib/vedeu/coercers/colour_test.rb +3 -1
  60. data/test/lib/vedeu/coercers/editor_line_test.rb +2 -0
  61. data/test/lib/vedeu/coercers/lines_test.rb +4 -0
  62. data/test/lib/vedeu/dsl/border_test.rb +13 -0
  63. data/test/lib/vedeu/dsl/geometry_test.rb +15 -0
  64. data/test/lib/vedeu/interfaces/repository_test.rb +1 -1
  65. data/test/lib/vedeu/models/toggleable_test.rb +6 -0
  66. data/test/lib/vedeu/output/refresh_test.rb +6 -6
  67. data/test/lib/vedeu/repositories/model_test.rb +6 -0
  68. data/test/lib/vedeu/repositories/registerable_test.rb +6 -0
  69. data/test/lib/vedeu/views/value_test.rb +6 -0
  70. data/test/support/examples/hello_world.rb +1 -1
  71. data/test/support/examples/view_templates_app/view_templates_app.rb +1 -1
  72. data/vedeu.gemspec +1 -1
  73. metadata +4 -4
@@ -46,8 +46,7 @@ module Vedeu
46
46
  include Vedeu::DSL
47
47
 
48
48
  # {include:file:docs/dsl/by_method/view.md}
49
- # @param name [String|Symbol] The name of the interface you are
50
- # targetting for this view.
49
+ # @macro param_name
51
50
  # @param block [Proc] The directives you wish to send to this
52
51
  # view.
53
52
  # @macro raise_requires_block
@@ -75,8 +74,7 @@ module Vedeu
75
74
  #
76
75
  # @todo More documentation required.
77
76
  #
78
- # @param name [String|Symbol] The name of interface for which this
79
- # template's content belongs to.
77
+ # @macro param_name
80
78
  # @param filename [String] The filename (including path) to the
81
79
  # template to be used. Yoy can use `File.dirname(__FILE__)` to
82
80
  # use relative paths.
@@ -109,7 +107,7 @@ module Vedeu
109
107
 
110
108
  private
111
109
 
112
- # @param name [String|Symbol]
110
+ # @macro param_name
113
111
  # @param lines [Vedeu::Views::Lines]
114
112
  # @return [Hash<Symbol => void>]
115
113
  def template_attributes(name, lines)
@@ -119,7 +117,7 @@ module Vedeu
119
117
  # Return the current attributes combined with the existing
120
118
  # interface attributes defined by the interface.
121
119
  #
122
- # @param name [String|Symbol] The name of the interface.
120
+ # @macro param_name
123
121
  # @return [Hash<Symbol => void>]
124
122
  def new_attributes(name)
125
123
  existing_attributes(name).merge!(attributes)
@@ -127,7 +125,7 @@ module Vedeu
127
125
 
128
126
  # Retrieve the attributes of the interface by name.
129
127
  #
130
- # @param name [String|Symbol] The name of the interface.
128
+ # @macro param_name
131
129
  # @return [Hash<Symbol => void>]
132
130
  def existing_attributes(name)
133
131
  interface(name).attributes
@@ -25,7 +25,7 @@ module Vedeu
25
25
  # Returns a new instance of Vedeu::Editor::Cropper.
26
26
  #
27
27
  # @param lines [Vedeu::Editor::Lines]
28
- # @param name [String|Symbol]
28
+ # @macro param_name
29
29
  # @param ox [Fixnum]
30
30
  # @param oy [Fixnum]
31
31
  # @return [Vedeu::Editor::Cropper]
@@ -35,7 +35,7 @@ module Vedeu
35
35
 
36
36
  # Returns a new instance of Vedeu::Editor::Editor.
37
37
  #
38
- # @param name [String|Symbol]
38
+ # @macro param_name
39
39
  # @param input [String|Symbol]
40
40
  # @return [Vedeu::Editor::Editor]
41
41
  def initialize(input:, name:)
@@ -41,8 +41,7 @@ module Vedeu
41
41
  # which when triggered will execute the code contained within
42
42
  # the passed block.
43
43
  #
44
- # @param name [Symbol] The name of the event to be triggered
45
- # later.
44
+ # @macro param_name
46
45
  # @param options [Hash<Symbol => void>] The options to
47
46
  # register the event with.
48
47
  # @option options :delay [Fixnum|Float] Limits the execution
@@ -94,7 +93,7 @@ module Vedeu
94
93
  alias register bind
95
94
 
96
95
  # {include:file:docs/dsl/by_method/bound.md}
97
- # @param name [Symbol]
96
+ # @macro param_name
98
97
  # @return [Boolean]
99
98
  def bound?(name)
100
99
  Vedeu.events.registered?(name) ||
@@ -102,7 +101,7 @@ module Vedeu
102
101
  end
103
102
 
104
103
  # {include:file:docs/dsl/by_method/unbind.md}
105
- # @param name [Symbol]
104
+ # @macro param_name
106
105
  # @return [Boolean]
107
106
  def unbind(name)
108
107
  return false unless Vedeu.bound?(name)
@@ -26,8 +26,7 @@ module Vedeu
26
26
 
27
27
  # Returns a new instance of Vedeu::Events::Trigger.
28
28
  #
29
- # @param name [Symbol] The name of the event you wish to
30
- # trigger. The event does not have to exist.
29
+ # @macro param_name
31
30
  # @param args [Array] Any arguments the event needs to execute
32
31
  # correctly.
33
32
  # @return [Vedeu::Events::Trigger]
@@ -82,7 +82,7 @@ module Vedeu
82
82
 
83
83
  # Returns a new instance of Vedeu::Area.
84
84
  #
85
- # @param name [Symbol|String]
85
+ # @macro param_name
86
86
  # @param y [Fixnum] The starting row/line position.
87
87
  # @param yn [Fixnum] The ending row/line position.
88
88
  # @param x [Fixnum] The starting column/character position.
@@ -10,13 +10,8 @@ module Vedeu
10
10
 
11
11
  class << self
12
12
 
13
- # Clears the group of interfaces belonging to the given name.
14
- #
15
- # @example
16
- # Vedeu.trigger(:_clear_group_, name)
17
- # Vedeu.clear_by_group(name)
18
- #
19
- # @param name [String|Symbol]
13
+ # {include:file:docs/dsl/by_method/clear_by_group.md}
14
+ # @macro param_name
20
15
  # @return [void]
21
16
  def render(name)
22
17
  new(name).render
@@ -28,7 +23,7 @@ module Vedeu
28
23
 
29
24
  # Return a new instance of Vedeu::Groups::Clear.
30
25
  #
31
- # @param name [String|Symbol]
26
+ # @macro param_name
32
27
  # @return [Vedeu::Groups::Clear]
33
28
  def initialize(name)
34
29
  @name = name
@@ -54,7 +54,7 @@ module Vedeu
54
54
  # # ... some code
55
55
  # end
56
56
  #
57
- # @param name [String|Symbol] The name of this group.
57
+ # @macro param_name
58
58
  # @param block [Proc]
59
59
  # @macro raise_requires_block
60
60
  # @return [Vedeu::Groups::Group]
@@ -71,7 +71,7 @@ module Vedeu
71
71
  # add :editor_interface
72
72
  # end
73
73
  #
74
- # @param name [String|Symbol]
74
+ # @macro param_name
75
75
  # @return [Vedeu::Groups::Group]
76
76
  def add(name)
77
77
  model.add(name)
@@ -18,8 +18,7 @@ module Vedeu
18
18
 
19
19
  include Vedeu::Common
20
20
 
21
- # @param name [String|Symbol] The name of the group to be
22
- # refreshed.
21
+ # @macro param_name
23
22
  # @return [Array|Vedeu::Error::ModelNotFound] A collection of
24
23
  # the names of interfaces refreshed, or an exception when the
25
24
  # group was not found.
@@ -29,7 +28,7 @@ module Vedeu
29
28
 
30
29
  # Return a new instance of Vedeu::Groups::Refresh.
31
30
  #
32
- # @param name [String|Symbol]
31
+ # @macro param_name
33
32
  # @return [Vedeu::Groups::Refresh]
34
33
  def initialize(name)
35
34
  @name = name
@@ -50,7 +50,7 @@ module Vedeu
50
50
  #
51
51
  # @return [Array|String|Symbol]
52
52
  def read
53
- Vedeu.log(type: :input, message: 'Waiting for user input...')
53
+ Vedeu.log(type: :input, message: "Waiting for user input...\n")
54
54
 
55
55
  if raw_mode?
56
56
  Vedeu.trigger(:_keypress_, keypress)
@@ -57,8 +57,7 @@ module Vedeu
57
57
  #
58
58
  # This is also used when defining the '_global_' keymap.
59
59
  #
60
- # @param name [String|Symbol] The name of the interface which
61
- # this keymap relates to.
60
+ # @macro param_name
62
61
  # @param block [Proc]
63
62
  # @macro raise_requires_block
64
63
  # @macro raise_missing_required
@@ -28,7 +28,7 @@ module Vedeu
28
28
  end
29
29
 
30
30
  # @param key [String|Symbol] The keypress.
31
- # @param name [String|Symbol] The keymap name.
31
+ # @macro param_name
32
32
  # @macro raise_missing_required
33
33
  # @return [Boolean]
34
34
  def registered?(key = nil, name = nil)
@@ -59,7 +59,7 @@ module Vedeu
59
59
  # Returns a new instance of Vedeu::Input::Mapper.
60
60
  #
61
61
  # @param key [NilClass|String|Symbol]
62
- # @param name [NilClass|String]
62
+ # @macro param_name
63
63
  # @param repository [NilClass|Vedeu::Repositories::Repository]
64
64
  # @return [Vedeu::Input::Mapper]
65
65
  def initialize(key = nil, name = nil, repository = nil)
@@ -12,12 +12,7 @@ module Vedeu
12
12
 
13
13
  class << self
14
14
 
15
- # Clear the interface with the given name.
16
- #
17
- # @example
18
- # Vedeu.trigger(:_clear_view_, name)
19
- # Vedeu.clear_by_name(name)
20
- #
15
+ # {include:file:docs/dsl/by_method/clear_by_name.md}
21
16
  # @return [Array<Array<Vedeu::Cells::Char>>]
22
17
  # @see #initialize
23
18
  def render(name = Vedeu.focus)
@@ -28,12 +23,7 @@ module Vedeu
28
23
  alias clear_by_name render
29
24
  alias by_name render
30
25
 
31
- # Clear the content of the interface with the given name.
32
- #
33
- # @example
34
- # Vedeu.trigger(:_clear_view_content_, name)
35
- # Vedeu.clear_content_by_name(name)
36
- #
26
+ # {include:file:docs/dsl/by_method/clear_content_by_name.md}
37
27
  # @return [Array<Array<Vedeu::Cells::Char>>]
38
28
  # @see #initialize
39
29
  def clear_content_by_name(name = Vedeu.focus)
@@ -46,8 +36,7 @@ module Vedeu
46
36
 
47
37
  # Return a new instance of Vedeu::Interfaces::Clear.
48
38
  #
49
- # @param name [String|Symbol] The name of the interface to
50
- # clear.
39
+ # @macro param_name
51
40
  # @param options [Hash]
52
41
  # @option options content_only [Boolean] Only clear the content
53
42
  # not the border as well. Defaults to false.
@@ -29,9 +29,7 @@ module Vedeu
29
29
  # # ... some code
30
30
  # end
31
31
  #
32
- # @param name [String|Symbol] The name of the interface. Used
33
- # to reference the interface throughout your application's
34
- # execution lifetime.
32
+ # @macro param_name
35
33
  # @param block [Proc] A set of attributes which define the
36
34
  # features of the interface.
37
35
  # @macro raise_requires_block
@@ -63,7 +61,7 @@ module Vedeu
63
61
  # registered, and also adds interface's name to list of
64
62
  # focussable interfaces.
65
63
  #
66
- # @param name [String|Symbol]
64
+ # @macro param_name
67
65
  # @see Vedeu::Buffers::Buffer
68
66
  # @return [Vedeu::Buffers::Buffer]
69
67
  def add_buffers!(name)
@@ -73,7 +71,7 @@ module Vedeu
73
71
  # Registers a new cursor for the interface unless already
74
72
  # registered.
75
73
  #
76
- # @param name [String|Symbol]
74
+ # @macro param_name
77
75
  # @return [Vedeu::Cursors::Cursor]
78
76
  def add_cursor!(name)
79
77
  Vedeu::Cursors::Cursor.store(name: name)
@@ -81,7 +79,7 @@ module Vedeu
81
79
 
82
80
  # Registers a new document with the interface.
83
81
  #
84
- # @param name [String|Symbol]
82
+ # @macro param_name
85
83
  def add_editor!(name)
86
84
  Vedeu::Editor::Document.store(name: name)
87
85
  end
@@ -89,7 +87,7 @@ module Vedeu
89
87
  # Registers interface name in focus list unless already
90
88
  # registered.
91
89
  #
92
- # @param name [String|Symbol]
90
+ # @macro param_name
93
91
  # @return [Array<String|Symbol>]
94
92
  def add_focusable!(name)
95
93
  Vedeu::Models::Focus.add(name)
@@ -98,7 +96,7 @@ module Vedeu
98
96
  # Registers a new keymap for the interface unless already
99
97
  # registered.
100
98
  #
101
- # @param name [String|Symbol]
99
+ # @macro param_name
102
100
  # @return [NilClass|Vedeu::Input::Keymap]
103
101
  def add_keymap!(name)
104
102
  Vedeu::Input::Keymap.store(name: name) unless keymap?(name)
@@ -114,7 +112,7 @@ module Vedeu
114
112
 
115
113
  private
116
114
 
117
- # @param name [String|Symbol]
115
+ # @macro param_name
118
116
  # @return [Boolean]
119
117
  def keymap?(name)
120
118
  Vedeu.keymaps.registered?(name)
@@ -214,8 +212,7 @@ module Vedeu
214
212
  # # ...
215
213
  # end
216
214
  #
217
- # @param name [String|Symbol] The name of the group to which
218
- # this interface should belong.
215
+ # @macro param_name
219
216
  # @return [Vedeu::Groups::Group]
220
217
  def group(name)
221
218
  return false unless present?(name)
@@ -225,8 +222,7 @@ module Vedeu
225
222
  Vedeu.groups.by_name(name).add(model.name)
226
223
  end
227
224
 
228
- # @param name [String|Symbol] The name of the interface to which
229
- # this keymap should belong.
225
+ # @macro param_name
230
226
  # @see Vedeu::Input::DSL.keymap
231
227
  def keymap(name = model.name, &block)
232
228
  Vedeu.keymap(name, &block)
@@ -262,8 +258,7 @@ module Vedeu
262
258
 
263
259
  # Use a value from another model.
264
260
  #
265
- # @param name [String|Symbol] The name of the interface model
266
- # you wish to use a value from.
261
+ # @macro param_name
267
262
  # @return [Vedeu::Interfaces::Interface]
268
263
  def use(name)
269
264
  model.repository.by_name(name)
@@ -13,15 +13,15 @@ module Vedeu
13
13
  null Vedeu::Interfaces::Null
14
14
  real Vedeu::Interfaces::Interface
15
15
 
16
- # Returns the interfaces in zindex order.
16
+ # Returns the interface names in zindex order.
17
17
  #
18
18
  # @example
19
19
  # Vedeu.interfaces.zindexed
20
20
  #
21
- # @return [Array<Vedeu::Interfaces::Interface>]
21
+ # @return [Array<String|Symbol>]
22
22
  # @see Vedeu::Interfaces::DSL#zindex
23
23
  def zindexed
24
- all.sort_by(&:zindex)
24
+ all.sort_by(&:zindex).map(&:name)
25
25
  end
26
26
 
27
27
  end # Interfaces
@@ -17,8 +17,7 @@ module Vedeu
17
17
  # items for your users to select; and provide interactivity
18
18
  # within your application.
19
19
  #
20
- # @param name [String|Symbol] The name of the interface or
21
- # view to which this menu belongs.
20
+ # @macro param_name
22
21
  # @param block [Proc] A set of attributes which define the
23
22
  # features of the menu.
24
23
  #
@@ -25,7 +25,7 @@ module Vedeu
25
25
  # Add an interface name to the focus list unless it is already
26
26
  # registered.
27
27
  #
28
- # @param name [String|Symbol] The name of the interface.
28
+ # @macro param_name
29
29
  # @param focus [Boolean] When true, prepends the interface name
30
30
  # to the collection, making that interface the currently
31
31
  # focussed interface.
@@ -51,8 +51,7 @@ module Vedeu
51
51
  # Vedeu.trigger(:_focus_by_name_, name)
52
52
  # Vedeu.focus_by_name('name')
53
53
  #
54
- # @param name [String|Symbol] The interface to focus; must be
55
- # defined.
54
+ # @macro param_name
56
55
  # @raise [Vedeu::Error::ModelNotFound] When the interface cannot
57
56
  # be found.
58
57
  # @return [String|Symbol] The name of the interface now in
@@ -86,7 +85,7 @@ module Vedeu
86
85
  # @example
87
86
  # Vedeu.focussed?(name)
88
87
  #
89
- # @param name [String|Symbol]
88
+ # @macro param_name
90
89
  # @return [Boolean]
91
90
  def current?(name)
92
91
  current == name
@@ -184,7 +183,7 @@ module Vedeu
184
183
  # Returns a boolean indicating whether the named model is
185
184
  # registered.
186
185
  #
187
- # @param name [String|Symbol]
186
+ # @macro param_name
188
187
  # @return [Boolean]
189
188
  def registered?(name)
190
189
  return false if storage.empty?
@@ -53,7 +53,7 @@ module Vedeu
53
53
  # Vedeu.hide_group(name)
54
54
  # Vedeu.hide_interface(name)
55
55
  #
56
- # @param name [String|Symbol]
56
+ # @macro param_name
57
57
  # @return [void]
58
58
  def hide(name = Vedeu.focus)
59
59
  repository.by_name(name).hide
@@ -68,7 +68,7 @@ module Vedeu
68
68
  # Vedeu.show_group(name)
69
69
  # Vedeu.show_interface(name)
70
70
  #
71
- # @param name [String|Symbol]
71
+ # @macro param_name
72
72
  # @return [void]
73
73
  def show(name = Vedeu.focus)
74
74
  repository.by_name(name).show
@@ -83,7 +83,7 @@ module Vedeu
83
83
  # Vedeu.toggle_group(name)
84
84
  # Vedeu.toggle_interface(name)
85
85
  #
86
- # @param name [String|Symbol]
86
+ # @macro param_name
87
87
  # @return [void]
88
88
  def toggle(name = Vedeu.focus)
89
89
  repository.by_name(name).toggle
@@ -96,7 +96,7 @@ module Vedeu
96
96
  # @example
97
97
  # Vedeu.hide_cursor(name)
98
98
  #
99
- # @param name [String|Symbol]
99
+ # @macro param_name
100
100
  # @return [void]
101
101
  # @see Vedeu::Toggleable#hide
102
102
  def hide_cursor(name = Vedeu.focus)
@@ -108,7 +108,7 @@ module Vedeu
108
108
  # @example
109
109
  # Vedeu.show_cursor(name)
110
110
  #
111
- # @param name [String|Symbol]
111
+ # @macro param_name
112
112
  # @return [void]
113
113
  # @see Vedeu::Toggleable#show
114
114
  def show_cursor(name = Vedeu.focus)
@@ -120,7 +120,7 @@ module Vedeu
120
120
  # @example
121
121
  # Vedeu.toggle_cursor(name)
122
122
  #
123
- # @param name [String|Symbol]
123
+ # @macro param_name
124
124
  # @return [void]
125
125
  # @see Vedeu::Toggleable#toggle
126
126
  def toggle_cursor(name = Vedeu.focus)
@@ -131,12 +131,13 @@ module Vedeu
131
131
 
132
132
  # Returns a boolean indicating whether the cursor is visible.
133
133
  #
134
- # @param name [String|Symbol]
134
+ # @macro param_name
135
135
  # @return [Boolean]
136
136
  def cursor_visible?(name)
137
137
  buffer(name).cursor_visible?
138
138
  end
139
139
 
140
+ # @macro param_name
140
141
  # @return [Vedeu::Buffers::Buffer]
141
142
  def buffer(name)
142
143
  Vedeu.buffers.by_name(name)