vedeu 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/LICENSE.txt +5 -0
  4. data/bin/vedeu +3 -1
  5. data/docs/api.md +2 -0
  6. data/examples/cursor_app/cursor_app.rb +22 -7
  7. data/examples/hello_world.rb +42 -0
  8. data/lib/vedeu.rb +5 -5
  9. data/lib/vedeu/api/api.rb +16 -33
  10. data/lib/vedeu/api/helpers.rb +86 -0
  11. data/lib/vedeu/api/interface.rb +60 -17
  12. data/lib/vedeu/api/keymap.rb +5 -0
  13. data/lib/vedeu/api/line.rb +52 -34
  14. data/lib/vedeu/api/menu.rb +1 -1
  15. data/lib/vedeu/api/stream.rb +0 -34
  16. data/lib/vedeu/configuration/api.rb +10 -10
  17. data/lib/vedeu/configuration/cli.rb +1 -1
  18. data/lib/vedeu/launcher.rb +21 -6
  19. data/lib/vedeu/models/background.rb +1 -1
  20. data/lib/vedeu/models/composition.rb +1 -1
  21. data/lib/vedeu/models/cursor.rb +25 -35
  22. data/lib/vedeu/models/foreground.rb +1 -1
  23. data/lib/vedeu/models/geometry.rb +216 -6
  24. data/lib/vedeu/models/interface.rb +14 -16
  25. data/lib/vedeu/models/keymap.rb +38 -6
  26. data/lib/vedeu/models/line.rb +1 -1
  27. data/lib/vedeu/models/stream.rb +1 -1
  28. data/lib/vedeu/output/compositor.rb +1 -1
  29. data/lib/vedeu/output/render.rb +1 -5
  30. data/lib/vedeu/output/viewport.rb +37 -2
  31. data/lib/vedeu/repositories/buffers.rb +21 -27
  32. data/lib/vedeu/repositories/cursors.rb +3 -15
  33. data/lib/vedeu/repositories/focus.rb +2 -6
  34. data/lib/vedeu/repositories/groups.rb +1 -1
  35. data/lib/vedeu/repositories/interfaces.rb +1 -1
  36. data/lib/vedeu/repositories/keymaps.rb +26 -22
  37. data/lib/vedeu/repositories/menus.rb +1 -1
  38. data/lib/vedeu/repositories/offsets.rb +30 -12
  39. data/lib/vedeu/repositories/positional.rb +23 -0
  40. data/lib/vedeu/support/colour_translator.rb +1 -16
  41. data/lib/vedeu/support/esc.rb +23 -28
  42. data/lib/vedeu/support/event.rb +6 -14
  43. data/lib/vedeu/{output → support}/refresh.rb +0 -0
  44. data/lib/vedeu/support/registrar.rb +6 -14
  45. data/lib/vedeu/support/repository.rb +3 -2
  46. data/lib/vedeu/support/terminal.rb +9 -13
  47. data/lib/vedeu/support/trace.rb +2 -3
  48. data/test/integration/cursors_test.rb +9 -0
  49. data/test/integration/views/basic_view_test.rb +19 -0
  50. data/test/lib/vedeu/api/api_test.rb +28 -5
  51. data/test/lib/vedeu/api/composition_test.rb +7 -3
  52. data/test/lib/vedeu/api/defined_test.rb +9 -3
  53. data/test/lib/vedeu/api/helpers_test.rb +39 -5
  54. data/test/lib/vedeu/api/interface_test.rb +88 -8
  55. data/test/lib/vedeu/api/keymap_test.rb +5 -3
  56. data/test/lib/vedeu/api/line_test.rb +9 -3
  57. data/test/lib/vedeu/api/menu_test.rb +11 -7
  58. data/test/lib/vedeu/api/stream_test.rb +9 -31
  59. data/test/lib/vedeu/application_test.rb +25 -2
  60. data/test/lib/vedeu/configuration/api_test.rb +5 -3
  61. data/test/lib/vedeu/configuration/cli_test.rb +5 -3
  62. data/test/lib/vedeu/configuration/configuration_test.rb +5 -2
  63. data/test/lib/vedeu/input/input_test.rb +5 -2
  64. data/test/lib/vedeu/launcher_test.rb +37 -2
  65. data/test/lib/vedeu/models/background_test.rb +6 -2
  66. data/test/lib/vedeu/models/char_test.rb +9 -6
  67. data/test/lib/vedeu/models/colour_test.rb +6 -2
  68. data/test/lib/vedeu/models/composition_test.rb +4 -2
  69. data/test/lib/vedeu/models/cursor_test.rb +27 -16
  70. data/test/lib/vedeu/models/foreground_test.rb +6 -2
  71. data/test/lib/vedeu/models/geometry_test.rb +6 -2
  72. data/test/lib/vedeu/models/interface_test.rb +5 -2
  73. data/test/lib/vedeu/models/keymap_test.rb +6 -4
  74. data/test/lib/vedeu/models/line_test.rb +5 -2
  75. data/test/lib/vedeu/models/offset_test.rb +7 -3
  76. data/test/lib/vedeu/models/stream_test.rb +4 -2
  77. data/test/lib/vedeu/models/style_test.rb +5 -2
  78. data/test/lib/vedeu/output/clear_test.rb +6 -2
  79. data/test/lib/vedeu/output/compositor_test.rb +8 -4
  80. data/test/lib/vedeu/output/render_test.rb +9 -6
  81. data/test/lib/vedeu/output/view_test.rb +7 -3
  82. data/test/lib/vedeu/output/viewport_test.rb +42 -9
  83. data/test/lib/vedeu/repositories/buffers_test.rb +52 -12
  84. data/test/lib/vedeu/repositories/cursors_test.rb +4 -26
  85. data/test/lib/vedeu/repositories/events_test.rb +6 -2
  86. data/test/lib/vedeu/repositories/focus_test.rb +5 -2
  87. data/test/lib/vedeu/repositories/groups_test.rb +5 -2
  88. data/test/lib/vedeu/repositories/interfaces_test.rb +4 -2
  89. data/test/lib/vedeu/repositories/keymaps_test.rb +8 -2
  90. data/test/lib/vedeu/repositories/menus_test.rb +3 -2
  91. data/test/lib/vedeu/repositories/offsets_test.rb +26 -19
  92. data/test/lib/vedeu/repositories/positional_test.rb +50 -0
  93. data/test/lib/vedeu/support/coercions_test.rb +7 -3
  94. data/test/lib/vedeu/support/colour_translator_test.rb +6 -2
  95. data/test/lib/vedeu/support/common_test.rb +5 -3
  96. data/test/lib/vedeu/support/esc_test.rb +6 -2
  97. data/test/lib/vedeu/support/event_test.rb +6 -2
  98. data/test/lib/vedeu/support/grid_test.rb +9 -3
  99. data/test/lib/vedeu/support/keymap_validator_test.rb +5 -2
  100. data/test/lib/vedeu/support/log_test.rb +4 -2
  101. data/test/lib/vedeu/support/menu_test.rb +10 -2
  102. data/test/lib/vedeu/support/position_test.rb +10 -2
  103. data/test/lib/vedeu/support/presentation_test.rb +6 -3
  104. data/test/lib/vedeu/{output → support}/refresh_test.rb +6 -2
  105. data/test/lib/vedeu/support/registrar_test.rb +2 -2
  106. data/test/lib/vedeu/support/repository_test.rb +4 -3
  107. data/test/lib/vedeu/support/terminal_test.rb +6 -2
  108. data/test/lib/vedeu/support/trace_test.rb +17 -2
  109. data/test/lib/vedeu_test.rb +1 -1
  110. data/vedeu.gemspec +2 -2
  111. metadata +13 -13
  112. data/lib/vedeu/output/area.rb +0 -284
  113. data/lib/vedeu/support/move.rb +0 -50
  114. data/test/lib/vedeu/output/area_test.rb +0 -242
  115. data/test/lib/vedeu/support/move_test.rb +0 -35
@@ -1,7 +1,9 @@
1
1
  require 'test_helper'
2
2
 
3
3
  module Vedeu
4
+
4
5
  describe Terminal do
6
+
5
7
  let(:console) { IO.console }
6
8
 
7
9
  describe '.open' do
@@ -165,5 +167,7 @@ module Vedeu
165
167
  Terminal.console.must_equal(console)
166
168
  end
167
169
  end
168
- end
169
- end
170
+
171
+ end # Terminal
172
+
173
+ end # Vedeu
@@ -1,6 +1,21 @@
1
1
  require 'test_helper'
2
2
 
3
3
  module Vedeu
4
+
4
5
  describe Trace do
5
- end
6
- end
6
+
7
+ describe '.call' do
8
+ it { skip }
9
+ end
10
+
11
+ describe '#initialize' do
12
+ it { skip }
13
+ end
14
+
15
+ describe '#trace' do
16
+ it { skip }
17
+ end
18
+
19
+ end # Trace
20
+
21
+ end # Vedeu
@@ -2,4 +2,4 @@ require 'test_helper'
2
2
 
3
3
  describe Vedeu do
4
4
  # ...
5
- end
5
+ end # Vedeu
data/vedeu.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'vedeu'
7
- spec.version = '0.2.4'
7
+ spec.version = '0.2.5'
8
8
  spec.authors = ['Gavin Laking']
9
9
  spec.email = ['gavinlaking@gmail.com']
10
10
  spec.summary = %q{A terminal case of wonderland.}
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'guard-bundler', '2.0.0'
23
23
  spec.add_development_dependency 'guard-minitest', '2.3.2'
24
24
  spec.add_development_dependency 'minitest', '5.4.2'
25
- spec.add_development_dependency 'minitest-reporters', '1.0.5'
25
+ spec.add_development_dependency 'minitest-reporters', '1.0.6'
26
26
  spec.add_development_dependency 'mocha', '1.1.0'
27
27
  spec.add_development_dependency 'pry', '0.10.1'
28
28
  spec.add_development_dependency 'rake', '10.3.2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vedeu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-19 00:00:00.000000000 Z
11
+ date: 2014-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 1.0.5
89
+ version: 1.0.6
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 1.0.5
96
+ version: 1.0.6
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: mocha
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -187,6 +187,7 @@ files:
187
187
  - docs/events.md
188
188
  - docs/getting_started.md
189
189
  - examples/cursor_app/cursor_app.rb
190
+ - examples/hello_world.rb
190
191
  - examples/lines_app/lines_app.rb
191
192
  - lib/vedeu.rb
192
193
  - lib/vedeu/api/api.rb
@@ -217,10 +218,8 @@ files:
217
218
  - lib/vedeu/models/offset.rb
218
219
  - lib/vedeu/models/stream.rb
219
220
  - lib/vedeu/models/style.rb
220
- - lib/vedeu/output/area.rb
221
221
  - lib/vedeu/output/clear.rb
222
222
  - lib/vedeu/output/compositor.rb
223
- - lib/vedeu/output/refresh.rb
224
223
  - lib/vedeu/output/render.rb
225
224
  - lib/vedeu/output/view.rb
226
225
  - lib/vedeu/output/viewport.rb
@@ -233,6 +232,7 @@ files:
233
232
  - lib/vedeu/repositories/keymaps.rb
234
233
  - lib/vedeu/repositories/menus.rb
235
234
  - lib/vedeu/repositories/offsets.rb
235
+ - lib/vedeu/repositories/positional.rb
236
236
  - lib/vedeu/support/coercions.rb
237
237
  - lib/vedeu/support/colour_translator.rb
238
238
  - lib/vedeu/support/common.rb
@@ -243,14 +243,15 @@ files:
243
243
  - lib/vedeu/support/keymap_validator.rb
244
244
  - lib/vedeu/support/log.rb
245
245
  - lib/vedeu/support/menu.rb
246
- - lib/vedeu/support/move.rb
247
246
  - lib/vedeu/support/position.rb
248
247
  - lib/vedeu/support/presentation.rb
248
+ - lib/vedeu/support/refresh.rb
249
249
  - lib/vedeu/support/registrar.rb
250
250
  - lib/vedeu/support/repository.rb
251
251
  - lib/vedeu/support/terminal.rb
252
252
  - lib/vedeu/support/trace.rb
253
253
  - logs/.gitkeep
254
+ - test/integration/cursors_test.rb
254
255
  - test/integration/defining_interfaces_test.rb
255
256
  - test/integration/run_once_test.rb
256
257
  - test/integration/views/basic_view_test.rb
@@ -282,10 +283,8 @@ files:
282
283
  - test/lib/vedeu/models/offset_test.rb
283
284
  - test/lib/vedeu/models/stream_test.rb
284
285
  - test/lib/vedeu/models/style_test.rb
285
- - test/lib/vedeu/output/area_test.rb
286
286
  - test/lib/vedeu/output/clear_test.rb
287
287
  - test/lib/vedeu/output/compositor_test.rb
288
- - test/lib/vedeu/output/refresh_test.rb
289
288
  - test/lib/vedeu/output/render_test.rb
290
289
  - test/lib/vedeu/output/view_test.rb
291
290
  - test/lib/vedeu/output/viewport_test.rb
@@ -298,6 +297,7 @@ files:
298
297
  - test/lib/vedeu/repositories/keymaps_test.rb
299
298
  - test/lib/vedeu/repositories/menus_test.rb
300
299
  - test/lib/vedeu/repositories/offsets_test.rb
300
+ - test/lib/vedeu/repositories/positional_test.rb
301
301
  - test/lib/vedeu/support/coercions_test.rb
302
302
  - test/lib/vedeu/support/colour_translator_test.rb
303
303
  - test/lib/vedeu/support/common_test.rb
@@ -307,9 +307,9 @@ files:
307
307
  - test/lib/vedeu/support/keymap_validator_test.rb
308
308
  - test/lib/vedeu/support/log_test.rb
309
309
  - test/lib/vedeu/support/menu_test.rb
310
- - test/lib/vedeu/support/move_test.rb
311
310
  - test/lib/vedeu/support/position_test.rb
312
311
  - test/lib/vedeu/support/presentation_test.rb
312
+ - test/lib/vedeu/support/refresh_test.rb
313
313
  - test/lib/vedeu/support/registrar_test.rb
314
314
  - test/lib/vedeu/support/repository_test.rb
315
315
  - test/lib/vedeu/support/terminal_test.rb
@@ -344,6 +344,7 @@ signing_key:
344
344
  specification_version: 4
345
345
  summary: A terminal case of wonderland.
346
346
  test_files:
347
+ - test/integration/cursors_test.rb
347
348
  - test/integration/defining_interfaces_test.rb
348
349
  - test/integration/run_once_test.rb
349
350
  - test/integration/views/basic_view_test.rb
@@ -375,10 +376,8 @@ test_files:
375
376
  - test/lib/vedeu/models/offset_test.rb
376
377
  - test/lib/vedeu/models/stream_test.rb
377
378
  - test/lib/vedeu/models/style_test.rb
378
- - test/lib/vedeu/output/area_test.rb
379
379
  - test/lib/vedeu/output/clear_test.rb
380
380
  - test/lib/vedeu/output/compositor_test.rb
381
- - test/lib/vedeu/output/refresh_test.rb
382
381
  - test/lib/vedeu/output/render_test.rb
383
382
  - test/lib/vedeu/output/view_test.rb
384
383
  - test/lib/vedeu/output/viewport_test.rb
@@ -391,6 +390,7 @@ test_files:
391
390
  - test/lib/vedeu/repositories/keymaps_test.rb
392
391
  - test/lib/vedeu/repositories/menus_test.rb
393
392
  - test/lib/vedeu/repositories/offsets_test.rb
393
+ - test/lib/vedeu/repositories/positional_test.rb
394
394
  - test/lib/vedeu/support/coercions_test.rb
395
395
  - test/lib/vedeu/support/colour_translator_test.rb
396
396
  - test/lib/vedeu/support/common_test.rb
@@ -400,9 +400,9 @@ test_files:
400
400
  - test/lib/vedeu/support/keymap_validator_test.rb
401
401
  - test/lib/vedeu/support/log_test.rb
402
402
  - test/lib/vedeu/support/menu_test.rb
403
- - test/lib/vedeu/support/move_test.rb
404
403
  - test/lib/vedeu/support/position_test.rb
405
404
  - test/lib/vedeu/support/presentation_test.rb
405
+ - test/lib/vedeu/support/refresh_test.rb
406
406
  - test/lib/vedeu/support/registrar_test.rb
407
407
  - test/lib/vedeu/support/repository_test.rb
408
408
  - test/lib/vedeu/support/terminal_test.rb
@@ -1,284 +0,0 @@
1
- module Vedeu
2
-
3
- # Provides a collection of methods useful in calculating geometries for
4
- # interfaces, cursors and viewports.
5
- #
6
- class Area
7
-
8
- attr_reader :attributes, :height, :x_min, :y_min, :width, :x, :y
9
-
10
- # Returns an instance of Area.
11
- #
12
- # @param interface [Interface]
13
- # @return [Area]
14
- def self.from_interface(interface)
15
- new({
16
- y_min: interface.top,
17
- height: interface.height,
18
- x_min: interface.left,
19
- width: interface.width
20
- })
21
- end
22
-
23
- # Returns an instance of Area.
24
- #
25
- # @param attributes [Hash] The attributes to initialize this class with.
26
- # @option attributes :y_min [Fixnum] The starting y coordinate for the area,
27
- # equivalent to +:top+ in {Geometry} parlance.
28
- # @option attributes :height [Fixnum] The number of rows or lines to use.
29
- # @option attributes :x_min [Fixnum] The starting x coordinate for the area,
30
- # equivalent to +:left+ in {Geometry} parlance.
31
- # @option attributes :width [Fixnum] The number of characters or columns to
32
- # use.
33
- # @option attributes :y [Fixnum] A coordinate in the area. This value should
34
- # be an actual terminal coordinate.
35
- # @option attributes :x [Fixnum] A coordinate in the area. This value should
36
- # be an actual terminal coordinate.
37
- #
38
- # @return [Area]
39
- def initialize(attributes = {})
40
- @attributes = defaults.merge!(attributes)
41
-
42
- @y_min = @attributes.fetch(:y_min)
43
- @height = @attributes.fetch(:height)
44
-
45
- @x_min = @attributes.fetch(:x_min)
46
- @width = @attributes.fetch(:width)
47
-
48
- @y = @attributes.fetch(:y)
49
- @x = @attributes.fetch(:x)
50
- end
51
-
52
- # Returns the same as #y_range, except as indices of an array.
53
- #
54
- # @example
55
- # # height = 4
56
- # y_indices # => [0, 1, 2, 3]
57
- #
58
- # @return [Array]
59
- def y_indices
60
- (0...height).to_a
61
- end
62
-
63
- # Returns the same as #x_range, except as indices of an array.
64
- #
65
- # @example
66
- # # width = 10
67
- # x_indices # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
68
- #
69
- # @return [Array]
70
- def x_indices
71
- (0...width).to_a
72
- end
73
-
74
- # Returns the maximum y coordinate for an area.
75
- #
76
- # @example
77
- # # y_min = 2
78
- # # height = 4
79
- # y_max # => 6
80
- #
81
- # @return [Fixnum]
82
- def y_max
83
- if height <= 0
84
- 0
85
-
86
- else
87
- y_min + height
88
-
89
- end
90
- end
91
-
92
- # Returns the maximum x coordinate for an area.
93
- #
94
- # @example
95
- # # x_min = 5
96
- # # width = 20
97
- # x_max # => 25
98
- #
99
- # @return [Fixnum]
100
- def x_max
101
- if width <= 0
102
- 0
103
-
104
- else
105
- x_min + width
106
-
107
- end
108
- end
109
-
110
- # Returns the maximum y index for an area.
111
- #
112
- # @example
113
- # # height = 3
114
- # y_max_index # => 2
115
- #
116
- # @return [Fixnum]
117
- def y_max_index
118
- return 0 if y_indices.empty?
119
-
120
- y_indices.last
121
- end
122
-
123
- # Returns the maximum x index for an area.
124
- #
125
- # @example
126
- # # width = 6
127
- # x_max_index # => 5
128
- #
129
- # @return [Fixnum]
130
- def x_max_index
131
- return 0 if x_indices.empty?
132
-
133
- x_indices.last
134
- end
135
-
136
- # Returns the y coordinate as an offset index in the area's y range. When a
137
- # value is provided, the y coordinate is overridden. Crudely corrects out of
138
- # range values.
139
- #
140
- # @example
141
- # # y_range = [7, 8, 9, 10]
142
- # # y = 8
143
- # y_index # => 1
144
- # y_index(10) # => 3
145
- # y_index(5) # => 0
146
- # y_index(15) # => 3
147
- #
148
- # @param value [Fixnum]
149
- # @return [Fixnum]
150
- def y_index(value = y)
151
- if height <= 0 || value <= y_min
152
- 0
153
-
154
- elsif value >= y_max
155
- y_max_index
156
-
157
- else
158
- y_range.index(value)
159
-
160
- end
161
- end
162
-
163
- # Returns the x coordinate as an offset index in the area's x range. When a
164
- # value is provided, the x coordinate is overridden. Crudely corrects out of
165
- # range values.
166
- #
167
- # @example
168
- # # x_range = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
169
- # # x = 8
170
- # x_index # => 4
171
- # x_index(11) # => 7
172
- # x_index(2) # => 0
173
- # x_index(15) # => 9
174
- #
175
- # @param value [Fixnum]
176
- # @return [Fixnum]
177
- def x_index(value = x)
178
- if width <= 0 || value <= x_min
179
- 0
180
-
181
- elsif value >= x_max
182
- x_max_index
183
-
184
- else
185
- x_range.index(value)
186
-
187
- end
188
- end
189
-
190
- # Returns the actual position of y for a given index. Crudely corrects out
191
- # of range values.
192
- #
193
- # @example
194
- # # y_range = [7, 8, 9, 10, 11]
195
- # y_position # => 7
196
- # y_position(-2) # => 7
197
- # y_position(2) # => 9
198
- # y_position(7) # => 11
199
- #
200
- # @param index [Fixnum]
201
- # @return [Fixnum]
202
- def y_position(index = 0)
203
- if index <= 0
204
- y_min
205
-
206
- elsif index >= y_max_index
207
- y_max
208
-
209
- else
210
- y_range[index]
211
-
212
- end
213
- end
214
-
215
- # Returns the actual position of x for a given index. Crudely corrects out
216
- # of range values.
217
- #
218
- # @example
219
- # # x_range = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
220
- # x_position # => 4
221
- # x_position(-2) # => 4
222
- # x_position(2) # => 6
223
- # x_position(15) # => 13
224
- #
225
- # @param index [Fixnum]
226
- # @return [Fixnum]
227
- def x_position(index = 0)
228
- if index <= 0
229
- x_min
230
-
231
- elsif index >= x_max_index
232
- x_max
233
-
234
- else
235
- x_range[index]
236
-
237
- end
238
- end
239
-
240
- # Returns an array with all coordinates from x to x_max.
241
- #
242
- # @example
243
- # # width = 10
244
- # # x_min = 4
245
- # # x_max = 14
246
- # x_range # => [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
247
- #
248
- # @return [Array]
249
- def x_range
250
- (x_min...x_max).to_a
251
- end
252
-
253
- # Returns an array with all coordinates from y to y_max.
254
- #
255
- # @example
256
- # # height = 4
257
- # # y_min = 7
258
- # # y_max = 11
259
- # y_range # => [7, 8, 9, 10]
260
- #
261
- # @return [Array]
262
- def y_range
263
- (y_min...y_max).to_a
264
- end
265
-
266
- private
267
-
268
- # Returns the default attributes for an Area instance.
269
- #
270
- # @return [Hash]
271
- def defaults
272
- {
273
- height: 0,
274
- x_min: 0,
275
- y_min: 0,
276
- width: 0,
277
- x: 0,
278
- y: 0,
279
- }
280
- end
281
-
282
- end # Area
283
-
284
- end # Vedeu