vedeu 0.6.30 → 0.6.31
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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +0 -3
- data/lib/vedeu/all.rb +0 -3
- data/lib/vedeu/borders/border.rb +3 -7
- data/lib/vedeu/borders/refresh.rb +4 -0
- data/lib/vedeu/buffers/refresh.rb +4 -0
- data/lib/vedeu/cursors/cursor.rb +46 -36
- data/lib/vedeu/cursors/refresh.rb +4 -0
- data/lib/vedeu/distributed/server.rb +4 -0
- data/lib/vedeu/editor/editor.rb +4 -0
- data/lib/vedeu/editor/repository.rb +4 -0
- data/lib/vedeu/events/event.rb +6 -1
- data/lib/vedeu/geometry/all.rb +1 -1
- data/lib/vedeu/geometry/coordinate.rb +138 -36
- data/lib/vedeu/geometry/dimension.rb +7 -0
- data/lib/vedeu/geometry/repository.rb +4 -0
- data/lib/vedeu/groups/clear.rb +4 -0
- data/lib/vedeu/groups/group.rb +4 -0
- data/lib/vedeu/groups/refresh.rb +4 -0
- data/lib/vedeu/input/mapper.rb +18 -0
- data/lib/vedeu/interfaces/interface.rb +4 -0
- data/lib/vedeu/logging/log.rb +6 -2
- data/lib/vedeu/menus/repository.rb +4 -0
- data/lib/vedeu/models/focus.rb +4 -0
- data/lib/vedeu/output/clear/interface.rb +4 -0
- data/lib/vedeu/output/refresh/refresh.rb +4 -0
- data/lib/vedeu/runtime/application.rb +10 -0
- data/lib/vedeu/runtime/flags.rb +4 -0
- data/lib/vedeu/runtime/launcher.rb +0 -2
- data/lib/vedeu/runtime/router.rb +4 -0
- data/lib/vedeu/terminal/buffer.rb +4 -0
- data/lib/vedeu/terminal/terminal.rb +4 -0
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/border_test.rb +0 -1
- data/test/lib/vedeu/geometry/coordinate.rb +167 -0
- data/test/lib/vedeu/input/mapper_test.rb +2 -0
- data/test/lib/vedeu/output/presentation/styles_test.rb +0 -1
- data/test/lib/vedeu/runtime/application_test.rb +1 -0
- data/test/test_helper.rb +1 -1
- data/vedeu.gemspec +1 -1
- metadata +6 -15
- data/lib/vedeu/bindings/all.rb +0 -64
- data/lib/vedeu/geometry/generic_coordinate.rb +0 -169
- data/lib/vedeu/options.rb +0 -22
- data/test/lib/vedeu/bindings/all_test.rb +0 -19
- data/test/lib/vedeu/geometry/coordinate_test.rb +0 -135
- data/test/lib/vedeu/geometry/generic_coordinate_test.rb +0 -45
- data/test/lib/vedeu/options_test.rb +0 -57
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e129ccc6fe63f7b1f7b48ab9030683d79fe8544c
|
|
4
|
+
data.tar.gz: fab4cf9d158706ff5670b11c59bfaf1f03710683
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f76de0943d7be6e18efc10e248acac5232be21608228f45766a4815dd9e6bda0488dc7d304793fa6dea38aceadbf8bbcbba2694fe9763aff645db8d7b8f37b58
|
|
7
|
+
data.tar.gz: 8e9ef60497f7132a022a87d8223dddb9b3e486f3887ada7ffc276143dab0dc4c35341a141104eb2c8e5b4621ced3d1de2d00517bfa1aa315b75da4ae9b355f42
|
data/.codeclimate.yml
CHANGED
data/lib/vedeu/all.rb
CHANGED
|
@@ -7,7 +7,6 @@ require 'vedeu/repositories/all'
|
|
|
7
7
|
require 'vedeu/events/all'
|
|
8
8
|
require 'vedeu/esc/all'
|
|
9
9
|
require 'vedeu/logging/all'
|
|
10
|
-
require 'vedeu/options'
|
|
11
10
|
require 'vedeu/error'
|
|
12
11
|
require 'vedeu/runtime/all'
|
|
13
12
|
require 'vedeu/terminal/all'
|
|
@@ -42,6 +41,4 @@ require 'vedeu/input/all'
|
|
|
42
41
|
require 'vedeu/interfaces/all'
|
|
43
42
|
require 'vedeu/menus/all'
|
|
44
43
|
require 'vedeu/templating/all'
|
|
45
|
-
|
|
46
|
-
require 'vedeu/bindings/all'
|
|
47
44
|
require 'vedeu/plugins/all'
|
data/lib/vedeu/borders/border.rb
CHANGED
|
@@ -25,10 +25,6 @@ module Vedeu
|
|
|
25
25
|
:y,
|
|
26
26
|
:yn
|
|
27
27
|
|
|
28
|
-
# @!attribute [rw] attributes
|
|
29
|
-
# @return [Hash]
|
|
30
|
-
attr_accessor :attributes
|
|
31
|
-
|
|
32
28
|
# @!attribute [rw] bottom_left
|
|
33
29
|
# @return [String]
|
|
34
30
|
attr_accessor :bottom_left
|
|
@@ -148,9 +144,9 @@ module Vedeu
|
|
|
148
144
|
parent: @parent,
|
|
149
145
|
repository: @repository,
|
|
150
146
|
show_bottom: @show_bottom,
|
|
151
|
-
show_left: @
|
|
152
|
-
show_right: @
|
|
153
|
-
show_top: @
|
|
147
|
+
show_left: @show_left,
|
|
148
|
+
show_right: @show_right,
|
|
149
|
+
show_top: @show_top,
|
|
154
150
|
style: @style,
|
|
155
151
|
title: @title,
|
|
156
152
|
top_left: @top_left,
|
|
@@ -362,9 +362,13 @@ module Vedeu
|
|
|
362
362
|
|
|
363
363
|
end # Borders
|
|
364
364
|
|
|
365
|
+
# :nocov:
|
|
366
|
+
|
|
365
367
|
# See {file:docs/events/refresh.md#\_refresh_border_}
|
|
366
368
|
Vedeu.bind(:_refresh_border_) do |name|
|
|
367
369
|
Vedeu::Borders::Refresh.by_name(name)
|
|
368
370
|
end
|
|
369
371
|
|
|
372
|
+
# :nocov:
|
|
373
|
+
|
|
370
374
|
end # Vedeu
|
|
@@ -74,6 +74,8 @@ module Vedeu
|
|
|
74
74
|
|
|
75
75
|
end # Buffers
|
|
76
76
|
|
|
77
|
+
# :nocov:
|
|
78
|
+
|
|
77
79
|
# See {file:docs/events/refresh.md#\_refresh_view_}
|
|
78
80
|
Vedeu.bind(:_refresh_view_) do |name|
|
|
79
81
|
Vedeu::Buffers::Refresh.by_name(name)
|
|
@@ -84,4 +86,6 @@ module Vedeu
|
|
|
84
86
|
Vedeu::Buffers::Refresh.refresh_content_by_name(name)
|
|
85
87
|
end
|
|
86
88
|
|
|
89
|
+
# :nocov:
|
|
90
|
+
|
|
87
91
|
end # Vedeu
|
data/lib/vedeu/cursors/cursor.rb
CHANGED
|
@@ -17,10 +17,6 @@ module Vedeu
|
|
|
17
17
|
:by,
|
|
18
18
|
:byn
|
|
19
19
|
|
|
20
|
-
# @!attribute [r] attributes
|
|
21
|
-
# @return [Hash]
|
|
22
|
-
attr_reader :attributes
|
|
23
|
-
|
|
24
20
|
# @!attribute [r] name
|
|
25
21
|
# @return [String|Symbol]
|
|
26
22
|
attr_reader :name
|
|
@@ -43,7 +39,7 @@ module Vedeu
|
|
|
43
39
|
|
|
44
40
|
# @param (see #initialize)
|
|
45
41
|
# @return [Vedeu::Cursors::Cursor]
|
|
46
|
-
def self.store(attributes)
|
|
42
|
+
def self.store(attributes = {})
|
|
47
43
|
new(attributes).store
|
|
48
44
|
end
|
|
49
45
|
|
|
@@ -64,13 +60,24 @@ module Vedeu
|
|
|
64
60
|
# the cursor.
|
|
65
61
|
# @return [Vedeu::Cursors::Cursor]
|
|
66
62
|
def initialize(attributes = {})
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@attributes.each do |key, value|
|
|
63
|
+
defaults.merge!(attributes).each do |key, value|
|
|
70
64
|
instance_variable_set("@#{key}", value)
|
|
71
65
|
end
|
|
72
66
|
end
|
|
73
67
|
|
|
68
|
+
# @return [Hash]
|
|
69
|
+
def attributes
|
|
70
|
+
{
|
|
71
|
+
name: @name,
|
|
72
|
+
ox: ox,
|
|
73
|
+
oy: oy,
|
|
74
|
+
repository: @repository,
|
|
75
|
+
visible: @visible,
|
|
76
|
+
x: x,
|
|
77
|
+
y: y,
|
|
78
|
+
}
|
|
79
|
+
end
|
|
80
|
+
|
|
74
81
|
# An object is equal when its values are the same.
|
|
75
82
|
#
|
|
76
83
|
# @param other [Vedeu::Cursors::Cursor]
|
|
@@ -88,9 +95,9 @@ module Vedeu
|
|
|
88
95
|
# @return [Vedeu::Cursors::Cursor]
|
|
89
96
|
def move_down
|
|
90
97
|
@oy += 1
|
|
98
|
+
@y = coordinate(oy, :y).y
|
|
91
99
|
|
|
92
|
-
|
|
93
|
-
new_attributes(coordinate.y_position, x, oy, ox))
|
|
100
|
+
store
|
|
94
101
|
end
|
|
95
102
|
|
|
96
103
|
# Moves the cursor left by one column.
|
|
@@ -101,9 +108,9 @@ module Vedeu
|
|
|
101
108
|
# @return [Vedeu::Cursors::Cursor]
|
|
102
109
|
def move_left
|
|
103
110
|
@ox -= 1
|
|
111
|
+
@x = coordinate(ox, :x).x
|
|
104
112
|
|
|
105
|
-
|
|
106
|
-
new_attributes(y, coordinate.x_position, oy, ox))
|
|
113
|
+
store
|
|
107
114
|
end
|
|
108
115
|
|
|
109
116
|
# Moves the cursor to the top left of the named interface.
|
|
@@ -113,8 +120,12 @@ module Vedeu
|
|
|
113
120
|
#
|
|
114
121
|
# @return [Vedeu::Cursors::Cursor]
|
|
115
122
|
def move_origin
|
|
116
|
-
|
|
117
|
-
|
|
123
|
+
@x = bx
|
|
124
|
+
@y = by
|
|
125
|
+
@ox = 0
|
|
126
|
+
@oy = 0
|
|
127
|
+
|
|
128
|
+
store
|
|
118
129
|
end
|
|
119
130
|
|
|
120
131
|
# Moves the cursor right by one column.
|
|
@@ -125,9 +136,9 @@ module Vedeu
|
|
|
125
136
|
# @return [Vedeu::Cursors::Cursor]
|
|
126
137
|
def move_right
|
|
127
138
|
@ox += 1
|
|
139
|
+
@x = coordinate(ox, :x).x
|
|
128
140
|
|
|
129
|
-
|
|
130
|
-
new_attributes(y, coordinate.x_position, oy, ox))
|
|
141
|
+
store
|
|
131
142
|
end
|
|
132
143
|
|
|
133
144
|
# Moves the cursor up by one row.
|
|
@@ -138,9 +149,9 @@ module Vedeu
|
|
|
138
149
|
# @return [Vedeu::Cursors::Cursor]
|
|
139
150
|
def move_up
|
|
140
151
|
@oy -= 1
|
|
152
|
+
@y = coordinate(oy, :y).y
|
|
141
153
|
|
|
142
|
-
|
|
143
|
-
new_attributes(coordinate.y_position, x, oy, ox))
|
|
154
|
+
store
|
|
144
155
|
end
|
|
145
156
|
|
|
146
157
|
# Renders the cursor.
|
|
@@ -160,9 +171,10 @@ module Vedeu
|
|
|
160
171
|
def reposition(new_oy, new_ox)
|
|
161
172
|
@oy = new_oy
|
|
162
173
|
@ox = new_ox
|
|
174
|
+
@y = coordinate(oy, :y).y
|
|
175
|
+
@x = coordinate(ox, :x).x
|
|
163
176
|
|
|
164
|
-
|
|
165
|
-
new_attributes(coordinate.y_position, coordinate.x_position, oy, ox))
|
|
177
|
+
store
|
|
166
178
|
end
|
|
167
179
|
|
|
168
180
|
# @return [Array<Fixnum>]
|
|
@@ -200,14 +212,12 @@ module Vedeu
|
|
|
200
212
|
|
|
201
213
|
# @return [Fixnum]
|
|
202
214
|
def ox
|
|
203
|
-
@ox
|
|
204
|
-
@ox
|
|
215
|
+
@ox < 0 ? 0 : @ox
|
|
205
216
|
end
|
|
206
217
|
|
|
207
218
|
# @return [Fixnum]
|
|
208
219
|
def oy
|
|
209
|
-
@oy
|
|
210
|
-
@oy
|
|
220
|
+
@oy < 0 ? 0 : @oy
|
|
211
221
|
end
|
|
212
222
|
|
|
213
223
|
# Return the position of this cursor.
|
|
@@ -235,21 +245,15 @@ module Vedeu
|
|
|
235
245
|
|
|
236
246
|
# @return [Fixnum] The column/character coordinate.
|
|
237
247
|
def x
|
|
238
|
-
@x =
|
|
239
|
-
@x =
|
|
240
|
-
|
|
241
|
-
@attributes[:x] = @x
|
|
242
|
-
|
|
248
|
+
@x = (@x < bx) ? bx : @x
|
|
249
|
+
@x = (@x > bxn) ? bxn : @x
|
|
243
250
|
@x
|
|
244
251
|
end
|
|
245
252
|
|
|
246
253
|
# @return [Fixnum] The row/line coordinate.
|
|
247
254
|
def y
|
|
248
|
-
@y =
|
|
249
|
-
@y =
|
|
250
|
-
|
|
251
|
-
@attributes[:y] = @y
|
|
252
|
-
|
|
255
|
+
@y = (@y < by) ? by : @y
|
|
256
|
+
@y = (@y > byn) ? byn : @y
|
|
253
257
|
@y
|
|
254
258
|
end
|
|
255
259
|
|
|
@@ -260,9 +264,11 @@ module Vedeu
|
|
|
260
264
|
@border ||= Vedeu.borders.by_name(name)
|
|
261
265
|
end
|
|
262
266
|
|
|
267
|
+
# Determine correct x and y related coordinates.
|
|
268
|
+
#
|
|
263
269
|
# @return [Vedeu::Geometry::Coordinate]
|
|
264
|
-
def coordinate
|
|
265
|
-
|
|
270
|
+
def coordinate(offset, type)
|
|
271
|
+
Vedeu::Geometry::Coordinate.new(name: name, offset: offset, type: type)
|
|
266
272
|
end
|
|
267
273
|
|
|
268
274
|
# The default values for a new instance of this class.
|
|
@@ -313,6 +319,8 @@ module Vedeu
|
|
|
313
319
|
def_delegators Vedeu::Cursors::Cursor, :hide_cursor, :show_cursor,
|
|
314
320
|
:toggle_cursor
|
|
315
321
|
|
|
322
|
+
# :nocov:
|
|
323
|
+
|
|
316
324
|
# See {file:docs/events/visibility.md#\_hide_cursor_}
|
|
317
325
|
Vedeu.bind(:_hide_cursor_) { |name| Vedeu.hide_cursor(name) }
|
|
318
326
|
# Vedeu.bind_alias(:_cursor_hide_, :_hide_cursor_)
|
|
@@ -372,4 +380,6 @@ module Vedeu
|
|
|
372
380
|
Vedeu.trigger(:_refresh_cursor_, name)
|
|
373
381
|
end
|
|
374
382
|
|
|
383
|
+
# :nocov:
|
|
384
|
+
|
|
375
385
|
end # Vedeu
|
|
@@ -249,6 +249,8 @@ module Vedeu
|
|
|
249
249
|
def_delegators Vedeu::Distributed::Server, :drb_restart, :drb_start,
|
|
250
250
|
:drb_status, :drb_stop
|
|
251
251
|
|
|
252
|
+
# :nocov:
|
|
253
|
+
|
|
252
254
|
# See {file:docs/events/drb.md#\_drb_restart_}
|
|
253
255
|
Vedeu.bind(:_drb_restart_) { Vedeu::Distributed::Server.restart }
|
|
254
256
|
|
|
@@ -261,4 +263,6 @@ module Vedeu
|
|
|
261
263
|
# See {file:docs/events/drb.md#\_drb_stop_}
|
|
262
264
|
Vedeu.bind(:_drb_stop_) { Vedeu::Distributed::Server.stop }
|
|
263
265
|
|
|
266
|
+
# :nocov:
|
|
267
|
+
|
|
264
268
|
end # Vedeu
|
data/lib/vedeu/editor/editor.rb
CHANGED
|
@@ -24,6 +24,8 @@ module Vedeu
|
|
|
24
24
|
# @return [Vedeu::Editor::Repository]
|
|
25
25
|
def_delegators Vedeu::Editor::Repository, :documents
|
|
26
26
|
|
|
27
|
+
# :nocov:
|
|
28
|
+
|
|
27
29
|
# See {file:docs/events/document.md#\_editor_execute_}
|
|
28
30
|
Vedeu.bind(:_editor_execute_) do |name|
|
|
29
31
|
Vedeu.documents.by_name(name).execute
|
|
@@ -65,4 +67,6 @@ module Vedeu
|
|
|
65
67
|
# See {file:docs/events/document.md#\_editor_up_}
|
|
66
68
|
Vedeu.bind(:_editor_up_) { |name| Vedeu.documents.by_name(name).up }
|
|
67
69
|
|
|
70
|
+
# :nocov:
|
|
71
|
+
|
|
68
72
|
end # Vedeu
|
data/lib/vedeu/events/event.rb
CHANGED
|
@@ -194,7 +194,12 @@ module Vedeu
|
|
|
194
194
|
@now = 0 # reset now
|
|
195
195
|
|
|
196
196
|
message = "Triggering: '#{name.inspect}'"
|
|
197
|
-
|
|
197
|
+
|
|
198
|
+
if args.size > 1
|
|
199
|
+
message << " with #{args.inspect}"
|
|
200
|
+
elsif args.one?
|
|
201
|
+
message << " for #{args.first.inspect}"
|
|
202
|
+
end
|
|
198
203
|
|
|
199
204
|
Vedeu.log(type: :event, message: message)
|
|
200
205
|
|
data/lib/vedeu/geometry/all.rb
CHANGED
|
@@ -17,7 +17,7 @@ require 'vedeu/geometry/area'
|
|
|
17
17
|
require 'vedeu/geometry/coordinate'
|
|
18
18
|
require 'vedeu/geometry/dimension'
|
|
19
19
|
require 'vedeu/geometry/dsl'
|
|
20
|
-
require 'vedeu/geometry/
|
|
20
|
+
require 'vedeu/geometry/coordinate'
|
|
21
21
|
require 'vedeu/geometry/geometry'
|
|
22
22
|
require 'vedeu/geometry/grid'
|
|
23
23
|
require 'vedeu/geometry/null'
|
|
@@ -6,62 +6,164 @@ module Vedeu
|
|
|
6
6
|
#
|
|
7
7
|
class Coordinate
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
# Return a new instance of Vedeu::Geometry::Coordinate.
|
|
10
|
+
#
|
|
11
|
+
# @param attributes [Hash]
|
|
12
|
+
# @option attributes name [String|Symbol]
|
|
13
|
+
# @option attributes type [Symbol]
|
|
14
|
+
# @option attributes offset [Fixnum]
|
|
15
|
+
# @return [Vedeu::Geometry::Coordinate]
|
|
16
|
+
def initialize(attributes = {})
|
|
17
|
+
defaults.merge!(attributes).each do |key, value|
|
|
18
|
+
instance_variable_set("@#{key}", value)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
10
21
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
22
|
+
# Returns the maximum coordinate for an area.
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# # d = 2
|
|
26
|
+
# # d_dn = 4 # represents width or height
|
|
27
|
+
# dn # => 6
|
|
28
|
+
#
|
|
29
|
+
# @return [Fixnum]
|
|
30
|
+
def dn_position
|
|
31
|
+
return 0 if d_dn <= 0
|
|
14
32
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
33
|
+
d + d_dn
|
|
34
|
+
end
|
|
35
|
+
alias_method :xn, :dn_position
|
|
36
|
+
alias_method :yn, :dn_position
|
|
18
37
|
|
|
19
|
-
# Returns
|
|
38
|
+
# Returns the coordinate for a given index.
|
|
20
39
|
#
|
|
21
|
-
# @
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
40
|
+
# @example
|
|
41
|
+
# # d_range = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
|
|
42
|
+
# position # => 4
|
|
43
|
+
# position(-2) # => 4
|
|
44
|
+
# position(2) # => 6
|
|
45
|
+
# position(15) # => 13
|
|
46
|
+
#
|
|
47
|
+
# @return [Fixnum]
|
|
48
|
+
def d_position
|
|
49
|
+
pos = if offset <= 0
|
|
50
|
+
d
|
|
51
|
+
|
|
52
|
+
elsif offset > dn_index
|
|
53
|
+
dn_position
|
|
54
|
+
|
|
55
|
+
else
|
|
56
|
+
d_range[offset]
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
pos = pos < bd ? bd : pos
|
|
61
|
+
pos = pos > bdn ? bdn : pos
|
|
62
|
+
pos
|
|
29
63
|
end
|
|
64
|
+
alias_method :x, :d_position
|
|
65
|
+
alias_method :y, :d_position
|
|
30
66
|
|
|
31
67
|
protected
|
|
32
68
|
|
|
33
69
|
# @!attribute [r] name
|
|
34
|
-
# @return [String
|
|
70
|
+
# @return [String]
|
|
35
71
|
attr_reader :name
|
|
36
72
|
|
|
37
|
-
# @!attribute [
|
|
73
|
+
# @!attribute [r] offset
|
|
38
74
|
# @return [Fixnum]
|
|
39
|
-
|
|
75
|
+
attr_reader :offset
|
|
40
76
|
|
|
41
|
-
# @!attribute [
|
|
42
|
-
# @return [
|
|
43
|
-
|
|
77
|
+
# @!attribute [r] type
|
|
78
|
+
# @return [Symbol]
|
|
79
|
+
attr_reader :type
|
|
44
80
|
|
|
45
81
|
private
|
|
46
82
|
|
|
47
|
-
#
|
|
48
|
-
|
|
83
|
+
# @see Vedeu::Borders::Repository#by_name
|
|
84
|
+
def border
|
|
85
|
+
@border ||= Vedeu.borders.by_name(name)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Return the :x or :y value from the border.
|
|
89
|
+
#
|
|
90
|
+
# @return [Fixnum]
|
|
91
|
+
def d
|
|
92
|
+
border.send(coordinate_type[0])
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Return the :bx or :by value from the border.
|
|
96
|
+
#
|
|
97
|
+
# @return [Fixnum]
|
|
98
|
+
def bd
|
|
99
|
+
border.send(coordinate_type[1])
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Return the :bxn or :byn value from the border.
|
|
103
|
+
#
|
|
104
|
+
# @return [Fixnum]
|
|
105
|
+
def bdn
|
|
106
|
+
border.send(coordinate_type[2])
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Return the :width or :height value from the border.
|
|
110
|
+
#
|
|
111
|
+
# @return [Fixnum]
|
|
112
|
+
def d_dn
|
|
113
|
+
border.send(coordinate_type[3])
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Ascertain the correct methods to use for determining the
|
|
117
|
+
# coordinates.
|
|
118
|
+
#
|
|
119
|
+
# @raise [Vedeu::Error::InvalidSyntax] When the coordinate type
|
|
120
|
+
# is not given.
|
|
121
|
+
# @return [Fixnum]
|
|
122
|
+
def coordinate_type
|
|
123
|
+
@_type ||= case type
|
|
124
|
+
when :x then [:x, :bx, :bxn, :width]
|
|
125
|
+
when :y then [:y, :by, :byn, :height]
|
|
126
|
+
else
|
|
127
|
+
fail Vedeu::Error::InvalidSyntax,
|
|
128
|
+
'Coordinate type not given, cannot continue.'.freeze
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Returns the maximum index for an area.
|
|
133
|
+
#
|
|
134
|
+
# @example
|
|
135
|
+
# # d_dn = 3
|
|
136
|
+
# dn_index # => 2
|
|
137
|
+
#
|
|
138
|
+
# @return [Fixnum]
|
|
139
|
+
def dn_index
|
|
140
|
+
return 0 if d_dn < 1
|
|
141
|
+
|
|
142
|
+
d_dn - 1
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# Returns an array with all coordinates from d to dn.
|
|
146
|
+
#
|
|
147
|
+
# @example
|
|
148
|
+
# # d_dn = 10
|
|
149
|
+
# # d = 4
|
|
150
|
+
# # dn = 14
|
|
151
|
+
# d_range # => [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
|
|
49
152
|
#
|
|
50
|
-
# @return [
|
|
51
|
-
def
|
|
52
|
-
|
|
53
|
-
offset: ox,
|
|
54
|
-
type: :x)
|
|
153
|
+
# @return [Array]
|
|
154
|
+
def d_range
|
|
155
|
+
(d...dn_position).to_a
|
|
55
156
|
end
|
|
56
157
|
|
|
57
|
-
#
|
|
58
|
-
# determine correct y related coordinates.
|
|
158
|
+
# The default values for a new instance of this class.
|
|
59
159
|
#
|
|
60
|
-
# @return [
|
|
61
|
-
def
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
160
|
+
# @return [Hash]
|
|
161
|
+
def defaults
|
|
162
|
+
{
|
|
163
|
+
name: '',
|
|
164
|
+
offset: nil,
|
|
165
|
+
type: :x,
|
|
166
|
+
}
|
|
65
167
|
end
|
|
66
168
|
|
|
67
169
|
end # Coordinate
|