vedeu 0.6.60 → 0.6.61

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/docs/dsl.md +18 -18
  3. data/docs/events/drb.md +2 -8
  4. data/docs/events/view.md +2 -2
  5. data/docs/events/visibility.md +1 -4
  6. data/lib/vedeu/all.rb +1 -1
  7. data/lib/vedeu/borders/border.rb +1 -1
  8. data/lib/vedeu/borders/refresh.rb +1 -1
  9. data/lib/vedeu/buffers/empty.rb +6 -4
  10. data/lib/vedeu/buffers/view.rb +78 -7
  11. data/lib/vedeu/cursors/cursor.rb +7 -5
  12. data/lib/vedeu/cursors/refresh.rb +1 -1
  13. data/lib/vedeu/cursors/reposition.rb +5 -3
  14. data/lib/vedeu/cursors/repository.rb +4 -6
  15. data/lib/vedeu/dsl/shared.rb +5 -5
  16. data/lib/vedeu/editor/cropper.rb +1 -1
  17. data/lib/vedeu/editor/cursor.rb +2 -2
  18. data/lib/vedeu/editor/item.rb +3 -3
  19. data/lib/vedeu/error.rb +1 -1
  20. data/lib/vedeu/esc/esc.rb +1 -1
  21. data/lib/vedeu/events/aliases.rb +2 -2
  22. data/lib/vedeu/{geometry → geometries}/alignment.rb +8 -8
  23. data/lib/vedeu/geometries/all.rb +31 -0
  24. data/lib/vedeu/{geometry → geometries}/area.rb +8 -8
  25. data/lib/vedeu/{geometry → geometries}/coordinate.rb +5 -5
  26. data/lib/vedeu/{geometry → geometries}/dimension.rb +6 -6
  27. data/lib/vedeu/{geometry → geometries}/dsl.rb +22 -22
  28. data/lib/vedeu/{geometry → geometries}/geometry.rb +15 -15
  29. data/lib/vedeu/{geometry → geometries}/grid.rb +6 -6
  30. data/lib/vedeu/{geometry → geometries}/horizontal_alignment.rb +3 -3
  31. data/lib/vedeu/{geometry → geometries}/move.rb +5 -5
  32. data/lib/vedeu/{geometry → geometries}/position.rb +18 -18
  33. data/lib/vedeu/{geometry → geometries}/repository.rb +9 -9
  34. data/lib/vedeu/{geometry → geometries}/validator.rb +3 -3
  35. data/lib/vedeu/{geometry → geometries}/vertical_alignment.rb +3 -3
  36. data/lib/vedeu/{geometry → geometries}/x_dimension.rb +4 -4
  37. data/lib/vedeu/{geometry → geometries}/y_dimension.rb +4 -4
  38. data/lib/vedeu/groups/group.rb +2 -1
  39. data/lib/vedeu/input/store.rb +2 -1
  40. data/lib/vedeu/interfaces/clear.rb +8 -6
  41. data/lib/vedeu/interfaces/interface.rb +1 -1
  42. data/lib/vedeu/models/cell.rb +2 -2
  43. data/lib/vedeu/models/escape.rb +2 -2
  44. data/lib/vedeu/models/focus.rb +2 -1
  45. data/lib/vedeu/models/page.rb +3 -2
  46. data/lib/vedeu/models/row.rb +10 -1
  47. data/lib/vedeu/models/views/char.rb +6 -6
  48. data/lib/vedeu/models/views/line.rb +1 -1
  49. data/lib/vedeu/output/compressor.rb +10 -15
  50. data/lib/vedeu/output/presentation/presentation.rb +1 -1
  51. data/lib/vedeu/output/renderers/all.rb +7 -8
  52. data/lib/vedeu/output/viewport.rb +1 -1
  53. data/lib/vedeu/repositories/store.rb +2 -2
  54. data/lib/vedeu/terminal/buffer.rb +46 -102
  55. data/lib/vedeu/terminal/terminal.rb +10 -2
  56. data/lib/vedeu/version.rb +1 -1
  57. data/test/lib/vedeu/borders/refresh_test.rb +1 -1
  58. data/test/lib/vedeu/buffers/empty_test.rb +3 -3
  59. data/test/lib/vedeu/buffers/view_test.rb +48 -1
  60. data/test/lib/vedeu/cursors/cursor_test.rb +2 -2
  61. data/test/lib/vedeu/editor/cropper_test.rb +1 -1
  62. data/test/lib/vedeu/editor/cursor_test.rb +1 -1
  63. data/test/lib/vedeu/editor/document_test.rb +2 -2
  64. data/test/lib/vedeu/{geometry → geometries}/alignment_test.rb +5 -5
  65. data/test/lib/vedeu/{geometry → geometries}/area_test.rb +4 -4
  66. data/test/lib/vedeu/{geometry → geometries}/coordinate.rb +5 -5
  67. data/test/lib/vedeu/{geometry → geometries}/dimension_test.rb +7 -5
  68. data/test/lib/vedeu/{geometry → geometries}/dsl_test.rb +31 -27
  69. data/test/lib/vedeu/{geometry → geometries}/geometry_test.rb +10 -7
  70. data/test/lib/vedeu/{geometry → geometries}/grid_test.rb +13 -9
  71. data/test/lib/vedeu/{geometry → geometries}/horizontal_alignment_test.rb +3 -3
  72. data/test/lib/vedeu/{geometry → geometries}/move_test.rb +10 -10
  73. data/test/lib/vedeu/{geometry → geometries}/position_test.rb +16 -15
  74. data/test/lib/vedeu/{geometry → geometries}/repository_test.rb +3 -3
  75. data/test/lib/vedeu/{geometry → geometries}/validator_test.rb +4 -4
  76. data/test/lib/vedeu/{geometry → geometries}/vertical_alignment_test.rb +3 -3
  77. data/test/lib/vedeu/{geometry → geometries}/x_dimension_test.rb +3 -3
  78. data/test/lib/vedeu/{geometry → geometries}/y_dimension_test.rb +3 -3
  79. data/test/lib/vedeu/interfaces/clear_test.rb +1 -1
  80. data/test/lib/vedeu/models/cell_test.rb +1 -1
  81. data/test/lib/vedeu/models/escape_test.rb +2 -2
  82. data/test/lib/vedeu/models/page_test.rb +18 -2
  83. data/test/lib/vedeu/models/views/char_test.rb +3 -3
  84. data/test/lib/vedeu/output/compressor_test.rb +30 -16
  85. data/test/lib/vedeu/output/renderers/html_test.rb +1 -1
  86. data/test/lib/vedeu/output/renderers/json_test.rb +17 -1
  87. data/test/lib/vedeu/output/viewport_test.rb +1 -1
  88. data/test/lib/vedeu/terminal/buffer_test.rb +6 -18
  89. data/test/lib/vedeu/terminal/terminal_test.rb +1 -1
  90. data/test/support/examples/material_colours_app.rb +2 -0
  91. data/test/test_helper.rb +1 -1
  92. metadata +48 -48
  93. data/lib/vedeu/geometry/all.rb +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 686a2b4fb8270f973081dc3c7d108cdb49e6449a
4
- data.tar.gz: 4ad07b62d0523da5bcfa758b53d1602b12396bc5
3
+ metadata.gz: caa790910d980d060680517416aab7206faea84f
4
+ data.tar.gz: b8ce3a4ae71d898bbd1c99da090b3d66976b0bb9
5
5
  SHA512:
6
- metadata.gz: 019242a5c896bf72c9e396f389ec4e185b461d9839087ae68f208a17c62307137aece08f65174ba3d4aa68f4d90233b327138dcaec1de35f858fa916ac58f43c
7
- data.tar.gz: f1489ca293258577eef48e095e8cea55cc22502d14c0a2df0f3fd281b0b200348cb6dd9486a92a845c68638d766514a7771d01dc63d1a6e4fe0b15c3abfa2ef0
6
+ metadata.gz: 97f27f54135a8415d01fc5c2b3f65d1652ba3b057c63fc5f9f0baf67ec07f7560340b652b40fbeea864015e0423eac7d4b877c0259f7451fc5316965987e2dcb
7
+ data.tar.gz: f895269aef915276b769640d7f77e02cffb79f0ec920dc50a173967c737d80c2866bade305ff064e82465264caddcebec48c0481ed80ce4391edc045396af07c
data/docs/dsl.md CHANGED
@@ -105,27 +105,27 @@ end
105
105
 
106
106
  ## Geometry
107
107
 
108
- {include:Vedeu::Geometry::DSL}
108
+ {include:Vedeu::Geometries::DSL}
109
109
 
110
110
  ### Setting the interface dimensions
111
111
 
112
- {include:Vedeu::Geometry::DSL#align}
113
- {include:Vedeu::Geometry::DSL#align_left}
114
- {include:Vedeu::Geometry::DSL#align_centre}
115
- {include:Vedeu::Geometry::DSL#align_right}
116
- {include:Vedeu::Geometry::DSL#align_top}
117
- {include:Vedeu::Geometry::DSL#align_middle}
118
- {include:Vedeu::Geometry::DSL#align_bottom}
119
- {include:Vedeu::Geometry::DSL#horizontal_alignment}
120
- {include:Vedeu::Geometry::DSL#vertical_alignment}
121
- {include:Vedeu::Geometry::DSL#height}
122
- {include:Vedeu::Geometry::DSL#width}
123
- {include:Vedeu::Geometry::DSL#columns}
124
- {include:Vedeu::Geometry::DSL#rows}
125
- {include:Vedeu::Geometry::DSL#x}
126
- {include:Vedeu::Geometry::DSL#xn}
127
- {include:Vedeu::Geometry::DSL#y}
128
- {include:Vedeu::Geometry::DSL#yn}
112
+ {include:Vedeu::Geometries::DSL#align}
113
+ {include:Vedeu::Geometries::DSL#align_left}
114
+ {include:Vedeu::Geometries::DSL#align_centre}
115
+ {include:Vedeu::Geometries::DSL#align_right}
116
+ {include:Vedeu::Geometries::DSL#align_top}
117
+ {include:Vedeu::Geometries::DSL#align_middle}
118
+ {include:Vedeu::Geometries::DSL#align_bottom}
119
+ {include:Vedeu::Geometries::DSL#horizontal_alignment}
120
+ {include:Vedeu::Geometries::DSL#vertical_alignment}
121
+ {include:Vedeu::Geometries::DSL#height}
122
+ {include:Vedeu::Geometries::DSL#width}
123
+ {include:Vedeu::Geometries::DSL#columns}
124
+ {include:Vedeu::Geometries::DSL#rows}
125
+ {include:Vedeu::Geometries::DSL#x}
126
+ {include:Vedeu::Geometries::DSL#xn}
127
+ {include:Vedeu::Geometries::DSL#y}
128
+ {include:Vedeu::Geometries::DSL#yn}
129
129
 
130
130
  ## Groups
131
131
 
data/docs/events/drb.md CHANGED
@@ -11,16 +11,10 @@ Note: See {Vedeu::Distributed::Server#input} for parameter details.
11
11
  Vedeu.trigger(:_drb_input_, data, type)
12
12
 
13
13
  ### `:\_drb_retrieve_output\_`
14
-
15
- Vedeu.trigger(:_drb_retrieve_output_)
14
+ See {Vedeu::Terminal::Buffer#output}
16
15
 
17
16
  ### `:\_drb_store_output\_`
18
- Triggering this event with 'data' will push data into the running
19
- application's virtual buffer.
20
-
21
- Note: See {Vedeu::Terminal::Buffer#write} for parameter details.
22
-
23
- Vedeu.trigger(:_drb_store_output_, data)
17
+ See {Vedeu::Terminal::Buffer#write}
24
18
 
25
19
  ### `:\_drb_restart\_`
26
20
  Use the DRb server to request the client application to restart.
data/docs/events/view.md CHANGED
@@ -9,7 +9,7 @@ Maximising an interface.
9
9
 
10
10
  Vedeu.trigger(:_maximise_, name)
11
11
 
12
- See {Vedeu::Geometry::Geometry#maximise}
12
+ See {Vedeu::Geometries::Geometry#maximise}
13
13
 
14
14
  ### `:\_movement_refresh\_`
15
15
  When triggered, triggers additional events which aid the updating of
@@ -42,4 +42,4 @@ Unmaximising an interface.
42
42
 
43
43
  Vedeu.trigger(:_unmaximise_, name)
44
44
 
45
- See {Vedeu::Geometry::Geometry#unmaximise}
45
+ See {Vedeu::Geometries::Geometry#unmaximise}
@@ -5,10 +5,7 @@
5
5
  Note: 'name' is a Symbol unless mentioned otherwise.
6
6
 
7
7
  ### `:\_clear\_`
8
- Clears the whole terminal space.
9
-
10
- Vedeu.trigger(:_clear_)
11
- Vedeu.clear
8
+ See {Vedeu::Terminal::Buffer#clear}
12
9
 
13
10
  ### `:\_clear_group\_`
14
11
  Clears the spaces occupied by the interfaces belonging to the named
data/lib/vedeu/all.rb CHANGED
@@ -27,7 +27,7 @@ require 'vedeu/buffers/all'
27
27
  require 'vedeu/colours/all'
28
28
  require 'vedeu/distributed/all'
29
29
  require 'vedeu/editor/all'
30
- require 'vedeu/geometry/all'
30
+ require 'vedeu/geometries/all'
31
31
  require 'vedeu/groups/all'
32
32
  require 'vedeu/input/all'
33
33
  require 'vedeu/interfaces/all'
@@ -195,7 +195,7 @@ module Vedeu
195
195
 
196
196
  # Returns the geometry for the interface.
197
197
  #
198
- # @return (see Vedeu::Geometry::Repository#by_name)
198
+ # @return (see Vedeu::Geometries::Repository#by_name)
199
199
  def geometry
200
200
  Vedeu.geometries.by_name(name)
201
201
  end
@@ -182,7 +182,7 @@ module Vedeu
182
182
 
183
183
  # Returns the geometry for the interface.
184
184
  #
185
- # @return (see Vedeu::Geometry::Repository#by_name)
185
+ # @return (see Vedeu::Geometries::Repository#by_name)
186
186
  def geometry
187
187
  Vedeu.geometries.by_name(name)
188
188
  end
@@ -16,11 +16,13 @@ module Vedeu
16
16
 
17
17
  # @return [Array<Array<Vedeu::Models::Cell>>]
18
18
  def buffer
19
- Array.new(width) do |y|
20
- Array.new(height) do |x|
21
- Vedeu::Models::Cell.new(name: name, position: [y, x])
19
+ Array.new(height) do |y|
20
+ unless y == 0
21
+ Array.new(width) do |x|
22
+ Vedeu::Models::Cell.new(name: name, position: [y, x]) unless x == 0
23
+ end.compact
22
24
  end
23
- end
25
+ end.compact
24
26
  end
25
27
 
26
28
  # @note
@@ -9,14 +9,52 @@ module Vedeu
9
9
  class View
10
10
 
11
11
  include Vedeu::Repositories::Defaults
12
+ include Enumerable
12
13
 
13
- private
14
+ # @return [Hash<Symbol => String|Symbol>]
15
+ def attributes
16
+ {
17
+ name: name
18
+ }
19
+ end
14
20
 
15
- # @return [Vedeu::Geometry::Geometry]
16
- def geometry
17
- Vedeu.geometries.by_name(name)
21
+ # Provides iteration over the buffer.
22
+ #
23
+ # @param block [Proc]
24
+ # @return [Enumerator]
25
+ def each(&block)
26
+ current.each(&block)
27
+ end
28
+
29
+ # Resets the named view buffer back to its empty state.
30
+ #
31
+ # @return [Vedeu::Buffers::View]
32
+ def reset!
33
+ Vedeu::Buffers::View.new(attributes)
34
+ end
35
+
36
+ # @param value_or_values [Array<Array<Vedeu::Views::Char>>|
37
+ # Vedeu::Views::Char]
38
+ # @return [Vedeu::Buffers::View]
39
+ def update(value_or_values)
40
+ Array(value_or_values).flatten.each do |value|
41
+ if valid?(value)
42
+ current[value.position.y][value.position.x] = value
43
+ dirty << value.position.to_a
44
+ end
45
+ end
46
+
47
+ self
18
48
  end
19
49
 
50
+ protected
51
+
52
+ # @!attribute [r] name
53
+ # @return [String|Symbol]
54
+ attr_reader :name
55
+
56
+ private
57
+
20
58
  # @return [Vedeu::Buffers::Empty]
21
59
  def buffer
22
60
  @_buffer ||= Vedeu::Buffers::Empty
@@ -25,7 +63,7 @@ module Vedeu
25
63
  width: geometry.bordered_width).buffer
26
64
  end
27
65
 
28
- # @return [Vedeu::Buffers::Empty]
66
+ # @return [Array<Vedeu::Models::Cell>]
29
67
  def current
30
68
  @current ||= buffer
31
69
  end
@@ -44,12 +82,45 @@ module Vedeu
44
82
 
45
83
  # @return [Vedeu::Buffers::Empty]
46
84
  def dirty
47
- @dirty ||= buffer
85
+ @dirty ||= []
48
86
  end
49
87
 
50
88
  # @return [Vedeu::Buffers::Empty]
51
89
  def dirty_reset!
52
- @dirty = buffer
90
+ @dirty = []
91
+ end
92
+
93
+ # @return [Vedeu::Geometries::Geometry]
94
+ def geometry
95
+ @_geometry ||= Vedeu.geometries.by_name(name)
96
+ end
97
+
98
+ # Returns a boolean indicating the value has a position
99
+ # attribute and is within the terminal boundary.
100
+ #
101
+ # @param value [void]
102
+ # @return [Boolean]
103
+ def valid?(value)
104
+ valid_value?(value) && valid_position?(value)
105
+ end
106
+
107
+ # Returns a boolean indicating whether the position of the value
108
+ # object is valid for this terminal.
109
+ #
110
+ # @param value [void]
111
+ # @return [Boolean]
112
+ def valid_position?(value)
113
+ buffer[value.position.y] && buffer[value.position.y][value.position.x]
114
+ end
115
+
116
+ # Returns a boolean indicating the value has a position
117
+ # attribute.
118
+ #
119
+ # @param value [void]
120
+ # @return [Boolean]
121
+ def valid_value?(value)
122
+ value.respond_to?(:position) &&
123
+ value.position.is_a?(Vedeu::Geometries::Position)
53
124
  end
54
125
 
55
126
  end # View
@@ -214,9 +214,9 @@ module Vedeu
214
214
 
215
215
  # Return the position of this cursor.
216
216
  #
217
- # @return [Vedeu::Geometry::Position]
217
+ # @return [Vedeu::Geometries::Position]
218
218
  def position
219
- @position = Vedeu::Geometry::Position[y, x]
219
+ @position = Vedeu::Geometries::Position[y, x]
220
220
  end
221
221
 
222
222
  # Show a named cursor, or without a name, the cursor of the
@@ -255,16 +255,18 @@ module Vedeu
255
255
 
256
256
  # Returns the geometry for the interface.
257
257
  #
258
- # @return (see Vedeu::Geometry::Repository#by_name)
258
+ # @return (see Vedeu::Geometries::Repository#by_name)
259
259
  def geometry
260
260
  @geometry ||= Vedeu.geometries.by_name(name)
261
261
  end
262
262
 
263
263
  # Determine correct x and y related coordinates.
264
264
  #
265
- # @return [Vedeu::Geometry::Coordinate]
265
+ # @return [Vedeu::Geometries::Coordinate]
266
266
  def coordinate(offset, type)
267
- Vedeu::Geometry::Coordinate.new(name: name, offset: offset, type: type)
267
+ Vedeu::Geometries::Coordinate.new(name: name,
268
+ offset: offset,
269
+ type: type)
268
270
  end
269
271
 
270
272
  # The default values for a new instance of this class.
@@ -78,7 +78,7 @@ module Vedeu
78
78
 
79
79
  # Fetch the geometry by name.
80
80
  #
81
- # @return (see Vedeu::Geometry::Repository#by_name)
81
+ # @return (see Vedeu::Geometries::Repository#by_name)
82
82
  def geometry
83
83
  @geometry ||= Vedeu.geometries.by_name(name)
84
84
  end
@@ -57,9 +57,11 @@ module Vedeu
57
57
  #
58
58
  # @param offset []
59
59
  # @param type []
60
- # @return [Vedeu::Geometry::Coordinate]
60
+ # @return [Vedeu::Geometries::Coordinate]
61
61
  def coordinate(offset, type)
62
- Vedeu::Geometry::Coordinate.new(name: name, offset: offset, type: type)
62
+ Vedeu::Geometries::Coordinate.new(name: name,
63
+ offset: offset,
64
+ type: type)
63
65
  end
64
66
 
65
67
  # @return [Vedeu::Cursors::Cursor]
@@ -77,7 +79,7 @@ module Vedeu
77
79
  }
78
80
  end
79
81
 
80
- # @return [Vedeu::Geometry::Geometry]
82
+ # @return [Vedeu::Geometries::Geometry]
81
83
  def geometry
82
84
  Vedeu.geometries.by_name(name)
83
85
  end
@@ -35,19 +35,17 @@ module Vedeu
35
35
 
36
36
  end # Cursors
37
37
 
38
- # @!method cursor
39
- # @see Vedeu::Cursors::Repository.cursor
40
- def_delegators Vedeu::Cursors::Repository,
41
- :cursor
42
-
43
38
  # Manipulate the repository of cursors.
44
39
  #
45
40
  # @example
46
41
  # Vedeu.cursors
47
42
  #
48
43
  # @!method cursors
49
- # @return [Vedeu::Cursors::Repository]
44
+ # @return [Vedeu::Cursors::Repository]
45
+ # @!method cursor
46
+ # @see Vedeu::Cursors::Repository.cursor
50
47
  def_delegators Vedeu::Cursors::Repository,
48
+ :cursor,
51
49
  :cursors
52
50
 
53
51
  end # Vedeu
@@ -57,7 +57,7 @@ module Vedeu
57
57
  # @example
58
58
  # Vedeu.interface :my_interface do
59
59
  # geometry do
60
- # # ... see Vedeu::Geometry::DSL for DSL methods for
60
+ # # ... see Vedeu::Geometries::DSL for DSL methods for
61
61
  # # geometries.
62
62
  # end
63
63
  # end
@@ -65,17 +65,17 @@ module Vedeu
65
65
  # @param name [String|Symbol] The name of the interface; this is
66
66
  # already provided when we define the interface or view,
67
67
  # setting it here is just mirroring functionality of
68
- # {Vedeu::Geometry::DSL.geometry}.
68
+ # {Vedeu::Geometries::DSL.geometry}.
69
69
  # @param block [Proc]
70
70
  # @raise [Vedeu::Error::RequiresBlock]
71
- # @return [Vedeu::Geometry::Geometry]
72
- # @see Vedeu::Geometry::DSL
71
+ # @return [Vedeu::Geometries::Geometry]
72
+ # @see Vedeu::Geometries::DSL
73
73
  def geometry(name = nil, &block)
74
74
  fail Vedeu::Error::RequiresBlock unless block_given?
75
75
 
76
76
  model_name = name ? name : model.name
77
77
 
78
- Vedeu::Geometry::Geometry.build(name: model_name, &block).store
78
+ Vedeu::Geometries::Geometry.build(name: model_name, &block).store
79
79
  end
80
80
 
81
81
  end # Shared
@@ -106,7 +106,7 @@ module Vedeu
106
106
 
107
107
  # Returns the border for the interface.
108
108
  #
109
- # @return (see Vedeu::Geometry::Repository#by_name)
109
+ # @return (see Vedeu::Geometries::Repository#by_name)
110
110
  def geometry
111
111
  @geometry ||= Vedeu.geometries.by_name(name)
112
112
  end
@@ -164,9 +164,9 @@ module Vedeu
164
164
 
165
165
  # Returns the geometry for the interface.
166
166
  #
167
- # @return (see Vedeu::Geometry::Repository#by_name)
167
+ # @return (see Vedeu::Geometries::Repository#by_name)
168
168
  def geometry
169
- @border ||= Vedeu.geometries.by_name(name)
169
+ @geometry ||= Vedeu.geometries.by_name(name)
170
170
  end
171
171
 
172
172
  # Returns the default options/attributes for this class.
@@ -32,12 +32,12 @@ module Vedeu
32
32
  if index.nil? || index > size
33
33
  collection[-1]
34
34
 
35
- elsif index <= 0
36
- collection[0]
37
-
38
35
  elsif index > 0 && index <= size
39
36
  collection[index]
40
37
 
38
+ else
39
+ collection[0]
40
+
41
41
  end
42
42
  end
43
43
 
data/lib/vedeu/error.rb CHANGED
@@ -84,7 +84,7 @@ module Vedeu
84
84
  # greater than 12. Vedeu is hard-wired to a 12-column layout for
85
85
  # the time being.
86
86
  #
87
- # @see Vedeu::Geometry::Grid
87
+ # @see Vedeu::Geometries::Grid
88
88
  #
89
89
  class OutOfRange < StandardError
90
90