vedeu 0.6.70 → 0.6.71
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/lib/vedeu/borders/caption.rb +2 -2
- data/lib/vedeu/borders/refresh.rb +3 -4
- data/lib/vedeu/borders/set_attribute.rb +4 -0
- data/lib/vedeu/borders/title.rb +11 -11
- data/lib/vedeu/cursors/cursor.rb +1 -1
- data/lib/vedeu/cursors/move.rb +3 -0
- data/lib/vedeu/dsl/lines.rb +2 -0
- data/lib/vedeu/dsl/streams.rb +2 -0
- data/lib/vedeu/editor/cursor.rb +1 -0
- data/lib/vedeu/editor/lines.rb +1 -0
- data/lib/vedeu/esc/esc.rb +1 -1
- data/lib/vedeu/geometries/all.rb +1 -0
- data/lib/vedeu/geometries/position.rb +14 -5
- data/lib/vedeu/geometries/positionable.rb +55 -0
- data/lib/vedeu/interfaces/clear.rb +6 -3
- data/lib/vedeu/models/cell.rb +2 -5
- data/lib/vedeu/models/escape.rb +2 -5
- data/lib/vedeu/output/write.rb +1 -0
- data/lib/vedeu/presentation/background.rb +5 -0
- data/lib/vedeu/presentation/foreground.rb +5 -0
- data/lib/vedeu/presentation/presentation.rb +5 -10
- data/lib/vedeu/version.rb +1 -1
- data/lib/vedeu/views/char.rb +4 -36
- data/test/lib/vedeu/borders/caption_test.rb +39 -7
- data/test/lib/vedeu/borders/title_test.rb +44 -17
- data/test/lib/vedeu/editor/cursor_test.rb +2 -0
- data/test/lib/vedeu/editor/lines_test.rb +2 -0
- data/test/lib/vedeu/geometries/position_test.rb +84 -24
- data/test/lib/vedeu/geometries/positionable_test.rb +67 -0
- data/test/lib/vedeu/models/cell_test.rb +1 -0
- data/test/lib/vedeu/models/escape_test.rb +0 -10
- data/test/lib/vedeu/renderers/json_test.rb +0 -4
- data/test/lib/vedeu/views/char_test.rb +25 -60
- data/vedeu.gemspec +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e6f85cb55a50d53c490a1a1f8f0bb3adbf38035d
|
|
4
|
+
data.tar.gz: 98154c75cbe858bb6ec6810f8a9887ebca55ffbb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 23e2508ccb6cac4af70ef49caa6cd8be4c13cb71233f3b121a78979fbda7956a4e0efa79c7b518558bb3054d11a6cb9c69b6bfe263afa4bdd1a9ed9941b9e5ce
|
|
7
|
+
data.tar.gz: ee5c80b253f55995582811f1f579ce8c2a408be5adb5ec699d1ddd87ae36f3a13dce1c4a4616a3831a1336758b0cf69555b8274fde96a2ca5d4ab6f0e36d4a3b
|
|
@@ -20,7 +20,7 @@ module Vedeu
|
|
|
20
20
|
|
|
21
21
|
caption_index = 0
|
|
22
22
|
chars.each_with_index do |char, index|
|
|
23
|
-
next if index <= start_index || index > (width -
|
|
23
|
+
next if index <= start_index || index > (width - 2)
|
|
24
24
|
|
|
25
25
|
char.border = nil
|
|
26
26
|
char.value = characters[caption_index]
|
|
@@ -32,7 +32,7 @@ module Vedeu
|
|
|
32
32
|
|
|
33
33
|
# @return [Fixnum]
|
|
34
34
|
def start_index
|
|
35
|
-
(width - size) -
|
|
35
|
+
(width - size) - 2
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
end # Caption
|
|
@@ -130,7 +130,7 @@ module Vedeu
|
|
|
130
130
|
#
|
|
131
131
|
# @return [Array<Vedeu::Views::Char>]
|
|
132
132
|
def build_top
|
|
133
|
-
build_horizontal(:
|
|
133
|
+
build_horizontal(:top_horizontal, y)
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
# Creates a bottom border character.
|
|
@@ -237,8 +237,7 @@ module Vedeu
|
|
|
237
237
|
def captionbar
|
|
238
238
|
return nil unless caption
|
|
239
239
|
|
|
240
|
-
@_caption ||= Vedeu::Borders::Caption
|
|
241
|
-
.render(caption, width, build_bottom)
|
|
240
|
+
@_caption ||= Vedeu::Borders::Caption.render(caption, build_bottom)
|
|
242
241
|
end
|
|
243
242
|
|
|
244
243
|
# An optional title for when the top border is to be shown.
|
|
@@ -248,7 +247,7 @@ module Vedeu
|
|
|
248
247
|
def titlebar
|
|
249
248
|
return nil unless title
|
|
250
249
|
|
|
251
|
-
@_title ||= Vedeu::Borders::Title.render(title,
|
|
250
|
+
@_title ||= Vedeu::Borders::Title.render(title, build_top)
|
|
252
251
|
end
|
|
253
252
|
|
|
254
253
|
end # Refresh
|
data/lib/vedeu/borders/title.rb
CHANGED
|
@@ -10,12 +10,12 @@ module Vedeu
|
|
|
10
10
|
#
|
|
11
11
|
class Title
|
|
12
12
|
|
|
13
|
+
# @param chars [Array<Vedeu::Views::Char>]
|
|
13
14
|
# @param value [String|Vedeu::Borders::Title|
|
|
14
15
|
# Vedeu::Borders::Caption]
|
|
15
|
-
# @
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
new(value, width, chars).render
|
|
16
|
+
# @return [Array<Vedeu::Views::Char>]
|
|
17
|
+
def self.render(value = '', chars = [])
|
|
18
|
+
new(value, chars).render
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
# Returns a new instance of Vedeu::Borders::Title or
|
|
@@ -24,11 +24,9 @@ module Vedeu
|
|
|
24
24
|
# @param chars [Array<Vedeu::Views::Char>]
|
|
25
25
|
# @param value [String|Vedeu::Borders::Title|
|
|
26
26
|
# Vedeu::Borders::Caption]
|
|
27
|
-
# @param width [Fixnum]
|
|
28
27
|
# @return [Vedeu::Borders::Title|Vedeu::Borders::Caption]
|
|
29
|
-
def initialize(value = '',
|
|
28
|
+
def initialize(value = '', chars = [])
|
|
30
29
|
@value = value
|
|
31
|
-
@width = width
|
|
32
30
|
@chars = chars
|
|
33
31
|
end
|
|
34
32
|
|
|
@@ -63,8 +61,9 @@ module Vedeu
|
|
|
63
61
|
def to_s
|
|
64
62
|
value.to_s
|
|
65
63
|
end
|
|
64
|
+
alias_method :to_str, :to_s
|
|
66
65
|
|
|
67
|
-
# Return the value or an empty string.
|
|
66
|
+
# Return the value (a title or a caption) or an empty string.
|
|
68
67
|
#
|
|
69
68
|
# @return [String]
|
|
70
69
|
def value
|
|
@@ -76,7 +75,8 @@ module Vedeu
|
|
|
76
75
|
protected
|
|
77
76
|
|
|
78
77
|
# @!attribute [r] chars
|
|
79
|
-
# @return [Array<Vedeu::Views::Char>]
|
|
78
|
+
# @return [Array<Vedeu::Views::Char>] An array of border
|
|
79
|
+
# characters.
|
|
80
80
|
attr_reader :chars
|
|
81
81
|
|
|
82
82
|
private
|
|
@@ -141,11 +141,11 @@ module Vedeu
|
|
|
141
141
|
title.chomp.slice(0...(width - 4))
|
|
142
142
|
end
|
|
143
143
|
|
|
144
|
-
# Return the
|
|
144
|
+
# Return the size of the horizontal border given via #chars.
|
|
145
145
|
#
|
|
146
146
|
# @return [Fixnum]
|
|
147
147
|
def width
|
|
148
|
-
|
|
148
|
+
chars.size
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
end # Title
|
data/lib/vedeu/cursors/cursor.rb
CHANGED
|
@@ -216,7 +216,7 @@ module Vedeu
|
|
|
216
216
|
#
|
|
217
217
|
# @return [Vedeu::Geometries::Position]
|
|
218
218
|
def position
|
|
219
|
-
@position = Vedeu::Geometries::Position[y, x]
|
|
219
|
+
@position = Vedeu::Geometries::Position.coerce([y, x])
|
|
220
220
|
end
|
|
221
221
|
|
|
222
222
|
# Show a named cursor, or without a name, the cursor of the
|
data/lib/vedeu/cursors/move.rb
CHANGED
data/lib/vedeu/dsl/lines.rb
CHANGED
data/lib/vedeu/dsl/streams.rb
CHANGED
data/lib/vedeu/editor/cursor.rb
CHANGED
data/lib/vedeu/editor/lines.rb
CHANGED
data/lib/vedeu/esc/esc.rb
CHANGED
data/lib/vedeu/geometries/all.rb
CHANGED
|
@@ -22,11 +22,12 @@ module Vedeu
|
|
|
22
22
|
# Convenience constructor for Vedeu::Geometries::Position.
|
|
23
23
|
#
|
|
24
24
|
# @param (see #initialize)
|
|
25
|
-
def self.[](y, x)
|
|
25
|
+
def self.[](y = 1, x = 1)
|
|
26
26
|
new(y, x)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
# @param value [Array<Fixnum>|
|
|
29
|
+
# @param value [Array<Fixnum>|Fixnum|Hash|
|
|
30
|
+
# Vedeu::Geometries::Position]
|
|
30
31
|
# @return [Vedeu::Geometries::Position]
|
|
31
32
|
def self.coerce(value)
|
|
32
33
|
if value.is_a?(self)
|
|
@@ -35,6 +36,9 @@ module Vedeu
|
|
|
35
36
|
elsif value.is_a?(Array)
|
|
36
37
|
new(*value)
|
|
37
38
|
|
|
39
|
+
elsif value.is_a?(Fixnum)
|
|
40
|
+
new(value, 1)
|
|
41
|
+
|
|
38
42
|
elsif value.is_a?(Hash)
|
|
39
43
|
new(value.fetch(:y, 1), value.fetch(:x, 1))
|
|
40
44
|
|
|
@@ -92,9 +96,14 @@ module Vedeu
|
|
|
92
96
|
[y, x]
|
|
93
97
|
end
|
|
94
98
|
|
|
95
|
-
#
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
# Return the position as a Hash.
|
|
100
|
+
#
|
|
101
|
+
# @return [Hash<Symbol => Fixnum|NilClass>]
|
|
102
|
+
def to_h
|
|
103
|
+
{
|
|
104
|
+
y: y,
|
|
105
|
+
x: x,
|
|
106
|
+
}
|
|
98
107
|
end
|
|
99
108
|
|
|
100
109
|
# Return the escape sequence required to position the cursor at
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
module Vedeu
|
|
2
|
+
|
|
3
|
+
module Geometries
|
|
4
|
+
|
|
5
|
+
# Provide position functionality to the including model.
|
|
6
|
+
#
|
|
7
|
+
# @api private
|
|
8
|
+
#
|
|
9
|
+
module Positionable
|
|
10
|
+
|
|
11
|
+
# Gets the position.
|
|
12
|
+
#
|
|
13
|
+
# @return [Vedeu::Geometries::Position]
|
|
14
|
+
def position
|
|
15
|
+
@_position ||= Vedeu::Geometries::Position.coerce(@position)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Sets the position.
|
|
19
|
+
#
|
|
20
|
+
# @param value [Array<void>|Hash<void>|
|
|
21
|
+
# Vedeu::Geometries::Position]
|
|
22
|
+
# @return [Vedeu::Geometries::Position]
|
|
23
|
+
def position=(value)
|
|
24
|
+
@_position = @position = Vedeu::Geometries::Position.coerce(value)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Returns a boolean indicating the position attribute of the
|
|
28
|
+
# including model is set.
|
|
29
|
+
#
|
|
30
|
+
# @return [Boolean]
|
|
31
|
+
def position?
|
|
32
|
+
position.is_a?(Vedeu::Geometries::Position)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Returns the x coordinate for the model when the position
|
|
36
|
+
# attribute of the including model is set.
|
|
37
|
+
#
|
|
38
|
+
# @return [Fixnum|NilClass]
|
|
39
|
+
def x
|
|
40
|
+
position.x if position?
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Returns the y coordinate for the model when the position
|
|
44
|
+
# attribute of the including model is set.
|
|
45
|
+
#
|
|
46
|
+
# @return [Fixnum|NilClass]
|
|
47
|
+
def y
|
|
48
|
+
position.y if position?
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end # Positionable
|
|
52
|
+
|
|
53
|
+
end # Geometries
|
|
54
|
+
|
|
55
|
+
end # Vedeu
|
|
@@ -142,11 +142,11 @@ module Vedeu
|
|
|
142
142
|
Vedeu.timer("Optimised clearing #{clearing}: '#{name}'".freeze) do
|
|
143
143
|
height.times.map do |iy|
|
|
144
144
|
[
|
|
145
|
-
|
|
145
|
+
build_position(y + iy, x),
|
|
146
146
|
colour.to_s,
|
|
147
147
|
chars,
|
|
148
148
|
].join
|
|
149
|
-
end.join +
|
|
149
|
+
end.join + build_position(y, x)
|
|
150
150
|
end
|
|
151
151
|
end
|
|
152
152
|
|
|
@@ -180,8 +180,11 @@ module Vedeu
|
|
|
180
180
|
end
|
|
181
181
|
end
|
|
182
182
|
|
|
183
|
+
# @param pos_y [Fixnum]
|
|
184
|
+
# @param pos_x [Fixnum]
|
|
183
185
|
# @return [Vedeu::Geometries::Position]
|
|
184
|
-
|
|
186
|
+
# @todo Not sure if #to_s is required here. (GL: 2015-11-30)
|
|
187
|
+
def build_position(pos_y, pos_x)
|
|
185
188
|
Vedeu::Geometries::Position.new(pos_y, pos_x).to_s
|
|
186
189
|
end
|
|
187
190
|
|
data/lib/vedeu/models/cell.rb
CHANGED
|
@@ -9,6 +9,7 @@ module Vedeu
|
|
|
9
9
|
class Cell
|
|
10
10
|
|
|
11
11
|
include Vedeu::Repositories::Defaults
|
|
12
|
+
include Vedeu::Geometries::Positionable
|
|
12
13
|
|
|
13
14
|
# @!attribute [r] colour
|
|
14
15
|
# @return [NilClass|String]
|
|
@@ -46,11 +47,6 @@ module Vedeu
|
|
|
46
47
|
@interface ||= Vedeu.interfaces.by_name(name)
|
|
47
48
|
end
|
|
48
49
|
|
|
49
|
-
# @return [Vedeu::Geometries::Position]
|
|
50
|
-
def position
|
|
51
|
-
Vedeu::Geometries::Position.coerce(@position)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
50
|
# @return [Hash]
|
|
55
51
|
def to_hash
|
|
56
52
|
{
|
|
@@ -71,6 +67,7 @@ module Vedeu
|
|
|
71
67
|
def to_s
|
|
72
68
|
value.to_s
|
|
73
69
|
end
|
|
70
|
+
alias_method :to_str, :to_s
|
|
74
71
|
|
|
75
72
|
private
|
|
76
73
|
|
data/lib/vedeu/models/escape.rb
CHANGED
|
@@ -8,6 +8,8 @@ module Vedeu
|
|
|
8
8
|
#
|
|
9
9
|
class Escape
|
|
10
10
|
|
|
11
|
+
include Vedeu::Geometries::Positionable
|
|
12
|
+
|
|
11
13
|
# @!attribute [r] value
|
|
12
14
|
# @return [String]
|
|
13
15
|
attr_reader :value
|
|
@@ -48,11 +50,6 @@ module Vedeu
|
|
|
48
50
|
end
|
|
49
51
|
alias_method :==, :eql?
|
|
50
52
|
|
|
51
|
-
# @return [String]
|
|
52
|
-
def position
|
|
53
|
-
Vedeu::Geometries::Position.coerce(@position)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
53
|
# Return an empty hash as most escape sequences won't make
|
|
57
54
|
# sense as JSON.
|
|
58
55
|
#
|
data/lib/vedeu/output/write.rb
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
require 'vedeu/geometries/positionable'
|
|
2
|
+
|
|
1
3
|
module Vedeu
|
|
2
4
|
|
|
3
5
|
module Presentation
|
|
4
6
|
|
|
7
|
+
include Vedeu::Geometries::Positionable
|
|
5
8
|
include Vedeu::Presentation::Colour
|
|
6
9
|
include Vedeu::Presentation::Styles
|
|
7
10
|
|
|
@@ -17,14 +20,6 @@ module Vedeu
|
|
|
17
20
|
|
|
18
21
|
private
|
|
19
22
|
|
|
20
|
-
# Returns a boolean indicating the model has a position
|
|
21
|
-
# attribute.
|
|
22
|
-
#
|
|
23
|
-
# @return [Boolean]
|
|
24
|
-
def position?
|
|
25
|
-
self.respond_to?(:position) && position.is_a?(Vedeu::Geometries::Position)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
23
|
# Renders the colour attributes of the receiver and yields (to
|
|
29
24
|
# then render the styles).
|
|
30
25
|
#
|
|
@@ -35,9 +30,9 @@ module Vedeu
|
|
|
35
30
|
|
|
36
31
|
# @return [String]
|
|
37
32
|
def render_position
|
|
38
|
-
return yield
|
|
33
|
+
return position.to_s { yield } if position?
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
yield
|
|
41
36
|
end
|
|
42
37
|
|
|
43
38
|
# Renders the style attributes of the receiver and yields (to
|
data/lib/vedeu/version.rb
CHANGED
data/lib/vedeu/views/char.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'vedeu/geometries/positionable'
|
|
2
|
+
|
|
1
3
|
module Vedeu
|
|
2
4
|
|
|
3
5
|
module Views
|
|
@@ -12,6 +14,7 @@ module Vedeu
|
|
|
12
14
|
class Char
|
|
13
15
|
|
|
14
16
|
include Comparable
|
|
17
|
+
include Vedeu::Geometries::Positionable
|
|
15
18
|
include Vedeu::Repositories::Parent
|
|
16
19
|
include Vedeu::Presentation
|
|
17
20
|
|
|
@@ -94,19 +97,6 @@ module Vedeu
|
|
|
94
97
|
@interface ||= Vedeu.interfaces.by_name(name)
|
|
95
98
|
end
|
|
96
99
|
|
|
97
|
-
# @return [Vedeu::Geometries::Position]
|
|
98
|
-
def position
|
|
99
|
-
@_position ||= Vedeu::Geometries::Position.coerce(@position)
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
# Sets the position of the Vedeu::Views::Char.
|
|
103
|
-
#
|
|
104
|
-
# @param value [Array<void>|Hash<void>|Vedeu::Geometries::Position]
|
|
105
|
-
# @return [Vedeu::Geometries::Position]
|
|
106
|
-
def position=(value)
|
|
107
|
-
@_position = @position = Vedeu::Geometries::Position.coerce(value)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
100
|
# @return [String]
|
|
111
101
|
def value
|
|
112
102
|
return @value unless border
|
|
@@ -114,20 +104,6 @@ module Vedeu
|
|
|
114
104
|
Vedeu::EscapeSequences::Esc.border { @value }
|
|
115
105
|
end
|
|
116
106
|
|
|
117
|
-
# Returns the x position for the Vedeu::Views::Char when set.
|
|
118
|
-
#
|
|
119
|
-
# @return [Fixnum|NilClass]
|
|
120
|
-
def x
|
|
121
|
-
position.x if position
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
# Returns the y position for the Vedeu::Views::Char when set.
|
|
125
|
-
#
|
|
126
|
-
# @return [Fixnum|NilClass]
|
|
127
|
-
def y
|
|
128
|
-
position.y if position
|
|
129
|
-
end
|
|
130
|
-
|
|
131
107
|
# Returns a Hash of all the values before coercion.
|
|
132
108
|
#
|
|
133
109
|
# @note
|
|
@@ -142,7 +118,7 @@ module Vedeu
|
|
|
142
118
|
colour: colour_to_hash,
|
|
143
119
|
name: name.to_s,
|
|
144
120
|
parent: parent_to_hash,
|
|
145
|
-
position:
|
|
121
|
+
position: position.to_h,
|
|
146
122
|
style: style.to_s,
|
|
147
123
|
value: value,
|
|
148
124
|
}
|
|
@@ -189,14 +165,6 @@ module Vedeu
|
|
|
189
165
|
}
|
|
190
166
|
end
|
|
191
167
|
|
|
192
|
-
# @return [Hash<Symbol => Fixnum>]
|
|
193
|
-
def position_to_hash
|
|
194
|
-
{
|
|
195
|
-
y: y,
|
|
196
|
-
x: x,
|
|
197
|
-
}
|
|
198
|
-
end
|
|
199
|
-
|
|
200
168
|
end # Char
|
|
201
169
|
|
|
202
170
|
end # Views
|
|
@@ -6,19 +6,51 @@ module Vedeu
|
|
|
6
6
|
|
|
7
7
|
describe Caption do
|
|
8
8
|
|
|
9
|
-
let(:
|
|
9
|
+
let(:described) { Vedeu::Borders::Caption }
|
|
10
|
+
let(:instance) { described.new(_value, chars) }
|
|
11
|
+
let(:_value) { 'Bismuth' }
|
|
12
|
+
let(:chars) {
|
|
13
|
+
[
|
|
14
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 1], border: type),
|
|
15
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 2], border: type),
|
|
16
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 3], border: type),
|
|
17
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 4], border: type),
|
|
18
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 5], border: type),
|
|
19
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 6], border: type),
|
|
20
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 7], border: type),
|
|
21
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 8], border: type),
|
|
22
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 9], border: type),
|
|
23
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 10], border: type),
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
let(:type) { :bottom_horizontal }
|
|
10
27
|
|
|
11
28
|
describe '#render' do
|
|
12
|
-
|
|
29
|
+
subject { instance.render }
|
|
13
30
|
|
|
14
|
-
|
|
31
|
+
context 'when the caption is empty' do
|
|
32
|
+
let(:_value) {}
|
|
15
33
|
|
|
16
|
-
|
|
17
|
-
# @todo Add more tests.
|
|
34
|
+
it { subject.must_equal(chars) }
|
|
18
35
|
end
|
|
19
36
|
|
|
20
|
-
context 'when the
|
|
21
|
-
|
|
37
|
+
context 'when the caption is not empty' do
|
|
38
|
+
let(:expected) {
|
|
39
|
+
[
|
|
40
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 1], border: type),
|
|
41
|
+
Vedeu::Views::Char.new(value: ' ', position: [4, 2], border: nil),
|
|
42
|
+
Vedeu::Views::Char.new(value: 'B', position: [4, 3], border: nil),
|
|
43
|
+
Vedeu::Views::Char.new(value: 'i', position: [4, 4], border: nil),
|
|
44
|
+
Vedeu::Views::Char.new(value: 's', position: [4, 5], border: nil),
|
|
45
|
+
Vedeu::Views::Char.new(value: 'm', position: [4, 6], border: nil),
|
|
46
|
+
Vedeu::Views::Char.new(value: 'u', position: [4, 7], border: nil),
|
|
47
|
+
Vedeu::Views::Char.new(value: 't', position: [4, 8], border: nil),
|
|
48
|
+
Vedeu::Views::Char.new(value: ' ', position: [4, 9], border: nil),
|
|
49
|
+
Vedeu::Views::Char.new(value: '-', position: [4, 10], border: type),
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
it { subject.must_equal(expected) }
|
|
22
54
|
end
|
|
23
55
|
end
|
|
24
56
|
|
|
@@ -7,22 +7,57 @@ module Vedeu
|
|
|
7
7
|
describe Title do
|
|
8
8
|
|
|
9
9
|
let(:described) { Vedeu::Borders::Title }
|
|
10
|
-
let(:instance) { described.new(_value,
|
|
10
|
+
let(:instance) { described.new(_value, chars) }
|
|
11
11
|
let(:_value) { 'Aluminium' }
|
|
12
|
-
let(:
|
|
13
|
-
|
|
12
|
+
let(:chars) {
|
|
13
|
+
[
|
|
14
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 1], border: type),
|
|
15
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 2], border: type),
|
|
16
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 3], border: type),
|
|
17
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 4], border: type),
|
|
18
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 5], border: type),
|
|
19
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 6], border: type),
|
|
20
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 7], border: type),
|
|
21
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 8], border: type),
|
|
22
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 9], border: type),
|
|
23
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 10], border: type),
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
let(:type) { :top_horizontal }
|
|
14
27
|
|
|
15
28
|
describe '#initialize' do
|
|
16
29
|
it { instance.must_be_instance_of(described) }
|
|
17
30
|
it { instance.instance_variable_get('@value').must_equal(_value) }
|
|
18
|
-
it { instance.instance_variable_get('@width').must_equal(width) }
|
|
19
31
|
it { instance.instance_variable_get('@chars').must_equal(chars) }
|
|
20
32
|
end
|
|
21
33
|
|
|
22
34
|
describe '.render' do
|
|
23
|
-
subject { described.render(_value,
|
|
35
|
+
subject { described.render(_value, chars) }
|
|
24
36
|
|
|
25
|
-
|
|
37
|
+
context 'when the title is empty' do
|
|
38
|
+
let(:_value) {}
|
|
39
|
+
|
|
40
|
+
it { subject.must_equal(chars) }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context 'when the title is not empty' do
|
|
44
|
+
let(:expected) {
|
|
45
|
+
[
|
|
46
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 1], border: type),
|
|
47
|
+
Vedeu::Views::Char.new(value: ' ', position: [1, 2], border: nil),
|
|
48
|
+
Vedeu::Views::Char.new(value: 'A', position: [1, 3], border: nil),
|
|
49
|
+
Vedeu::Views::Char.new(value: 'l', position: [1, 4], border: nil),
|
|
50
|
+
Vedeu::Views::Char.new(value: 'u', position: [1, 5], border: nil),
|
|
51
|
+
Vedeu::Views::Char.new(value: 'm', position: [1, 6], border: nil),
|
|
52
|
+
Vedeu::Views::Char.new(value: 'i', position: [1, 7], border: nil),
|
|
53
|
+
Vedeu::Views::Char.new(value: 'n', position: [1, 8], border: nil),
|
|
54
|
+
Vedeu::Views::Char.new(value: ' ', position: [1, 9], border: nil),
|
|
55
|
+
Vedeu::Views::Char.new(value: '-', position: [1, 10], border: type),
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
it { subject.must_equal(expected) }
|
|
60
|
+
end
|
|
26
61
|
end
|
|
27
62
|
|
|
28
63
|
describe '#eql?' do
|
|
@@ -40,22 +75,14 @@ module Vedeu
|
|
|
40
75
|
end
|
|
41
76
|
|
|
42
77
|
describe '#render' do
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
subject { instance.render(top_border) }
|
|
46
|
-
|
|
47
|
-
context 'when the title is empty' do
|
|
48
|
-
# @todo Add more tests.
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
context 'when the title is not empty' do
|
|
52
|
-
# @todo Add more tests.
|
|
53
|
-
end
|
|
78
|
+
it { instance.must_respond_to(:render) }
|
|
54
79
|
end
|
|
55
80
|
|
|
56
81
|
describe '#to_s' do
|
|
57
82
|
subject { instance.to_s }
|
|
58
83
|
|
|
84
|
+
it { instance.must_respond_to(:to_str) }
|
|
85
|
+
|
|
59
86
|
it { subject.must_equal('Aluminium') }
|
|
60
87
|
end
|
|
61
88
|
|
|
@@ -30,6 +30,33 @@ module Vedeu
|
|
|
30
30
|
subject { described.[](y, x) }
|
|
31
31
|
|
|
32
32
|
it { instance.must_be_instance_of(described) }
|
|
33
|
+
|
|
34
|
+
context 'when the x and y coordinates are given' do
|
|
35
|
+
it { instance.y.must_equal(12) }
|
|
36
|
+
it { instance.x.must_equal(19) }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
context 'when the x coordinate is not given' do
|
|
40
|
+
let(:x) {}
|
|
41
|
+
|
|
42
|
+
it { instance.y.must_equal(12) }
|
|
43
|
+
it { instance.x.must_equal(1) }
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
context 'when the y coordinate is not given' do
|
|
47
|
+
let(:y) {}
|
|
48
|
+
|
|
49
|
+
it { instance.y.must_equal(1) }
|
|
50
|
+
it { instance.x.must_equal(19) }
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
context 'when the x and y coordinates are not given' do
|
|
54
|
+
let(:x) {}
|
|
55
|
+
let(:y) {}
|
|
56
|
+
|
|
57
|
+
it { instance.y.must_equal(1) }
|
|
58
|
+
it { instance.x.must_equal(1) }
|
|
59
|
+
end
|
|
33
60
|
end
|
|
34
61
|
|
|
35
62
|
describe '#<=>' do
|
|
@@ -75,6 +102,14 @@ module Vedeu
|
|
|
75
102
|
it { subject.x.must_equal(8) }
|
|
76
103
|
end
|
|
77
104
|
|
|
105
|
+
context 'when the value is an Fixnum' do
|
|
106
|
+
let(:_value) { 2 }
|
|
107
|
+
|
|
108
|
+
it { subject.must_be_instance_of(described) }
|
|
109
|
+
it { subject.y.must_equal(2) }
|
|
110
|
+
it { subject.x.must_equal(1) }
|
|
111
|
+
end
|
|
112
|
+
|
|
78
113
|
context 'when the value is a Hash' do
|
|
79
114
|
let(:_value) { { y: 3, x: 9 } }
|
|
80
115
|
|
|
@@ -84,6 +119,8 @@ module Vedeu
|
|
|
84
119
|
end
|
|
85
120
|
|
|
86
121
|
context 'when the value is something unhandled' do
|
|
122
|
+
let(:_value) { :invalid }
|
|
123
|
+
|
|
87
124
|
it { subject.must_be_instance_of(NilClass) }
|
|
88
125
|
end
|
|
89
126
|
end
|
|
@@ -103,44 +140,67 @@ module Vedeu
|
|
|
103
140
|
end
|
|
104
141
|
|
|
105
142
|
describe '#to_a' do
|
|
106
|
-
subject {
|
|
143
|
+
subject { instance.to_a }
|
|
107
144
|
|
|
108
|
-
it { subject.must_equal([
|
|
145
|
+
it { subject.must_equal([12, 19]) }
|
|
109
146
|
end
|
|
110
147
|
|
|
111
|
-
describe '#
|
|
112
|
-
subject { instance.
|
|
148
|
+
describe '#to_h' do
|
|
149
|
+
subject { instance.to_h }
|
|
113
150
|
|
|
114
|
-
it { subject.
|
|
115
|
-
it { subject.must_equal(instance) }
|
|
151
|
+
it { subject.must_equal({ y: 12, x: 19 }) }
|
|
116
152
|
end
|
|
117
153
|
|
|
118
154
|
describe '#to_s' do
|
|
119
|
-
|
|
155
|
+
let(:_value) {}
|
|
156
|
+
|
|
157
|
+
subject { described.coerce(_value).to_s }
|
|
120
158
|
|
|
121
|
-
|
|
122
|
-
|
|
159
|
+
context 'when no coordinates are provided' do
|
|
160
|
+
it { subject.must_equal('') }
|
|
123
161
|
end
|
|
124
162
|
|
|
125
|
-
|
|
126
|
-
|
|
163
|
+
context 'when coordinates are provided' do
|
|
164
|
+
let(:_value) { [12, 19] }
|
|
165
|
+
|
|
166
|
+
it 'returns an escape sequence' do
|
|
167
|
+
subject.must_equal("\e[12;19H")
|
|
168
|
+
end
|
|
127
169
|
end
|
|
128
170
|
|
|
129
|
-
|
|
130
|
-
|
|
171
|
+
context 'when a coordinate is missing' do
|
|
172
|
+
let(:_value) { 12 }
|
|
173
|
+
|
|
174
|
+
it 'returns an escape sequence' do
|
|
175
|
+
subject.must_equal("\e[12;1H")
|
|
176
|
+
end
|
|
131
177
|
end
|
|
132
178
|
|
|
133
|
-
|
|
134
|
-
|
|
179
|
+
context 'when the x coordinate is negative' do
|
|
180
|
+
let(:_value) { [12, -5] }
|
|
181
|
+
|
|
182
|
+
it 'returns an escape sequence' do
|
|
183
|
+
subject.must_equal("\e[12;1H")
|
|
184
|
+
end
|
|
135
185
|
end
|
|
136
186
|
|
|
137
|
-
|
|
138
|
-
|
|
187
|
+
context 'when the y coordinate is negative' do
|
|
188
|
+
let(:_value) { [-12, 5] }
|
|
189
|
+
|
|
190
|
+
it 'returns an escape sequence' do
|
|
191
|
+
subject.must_equal("\e[1;5H")
|
|
192
|
+
end
|
|
139
193
|
end
|
|
140
194
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
195
|
+
context 'when a block is given' do
|
|
196
|
+
let(:instance) { described.coerce(_value) }
|
|
197
|
+
let(:_value) { [4, 9] }
|
|
198
|
+
|
|
199
|
+
subject { instance.to_s { 'test' } }
|
|
200
|
+
|
|
201
|
+
it 'returns an escape sequence and the result of the block' do
|
|
202
|
+
subject.must_equal("\e[4;9Htest")
|
|
203
|
+
end
|
|
144
204
|
end
|
|
145
205
|
end
|
|
146
206
|
|
|
@@ -165,7 +225,7 @@ module Vedeu
|
|
|
165
225
|
describe '#down' do
|
|
166
226
|
subject { instance.down }
|
|
167
227
|
|
|
168
|
-
it { subject.must_be_instance_of(
|
|
228
|
+
it { subject.must_be_instance_of(described) }
|
|
169
229
|
it { subject.y.must_equal(13) }
|
|
170
230
|
it { subject.x.must_equal(19) }
|
|
171
231
|
|
|
@@ -179,7 +239,7 @@ module Vedeu
|
|
|
179
239
|
describe '#left' do
|
|
180
240
|
subject { instance.left }
|
|
181
241
|
|
|
182
|
-
it { subject.must_be_instance_of(
|
|
242
|
+
it { subject.must_be_instance_of(described) }
|
|
183
243
|
it { subject.y.must_equal(12) }
|
|
184
244
|
it { subject.x.must_equal(18) }
|
|
185
245
|
|
|
@@ -193,7 +253,7 @@ module Vedeu
|
|
|
193
253
|
describe '#right' do
|
|
194
254
|
subject { instance.right }
|
|
195
255
|
|
|
196
|
-
it { subject.must_be_instance_of(
|
|
256
|
+
it { subject.must_be_instance_of(described) }
|
|
197
257
|
it { subject.y.must_equal(12) }
|
|
198
258
|
it { subject.x.must_equal(20) }
|
|
199
259
|
|
|
@@ -207,7 +267,7 @@ module Vedeu
|
|
|
207
267
|
describe '#up' do
|
|
208
268
|
subject { instance.up }
|
|
209
269
|
|
|
210
|
-
it { subject.must_be_instance_of(
|
|
270
|
+
it { subject.must_be_instance_of(described) }
|
|
211
271
|
it { subject.y.must_equal(11) }
|
|
212
272
|
it { subject.x.must_equal(19) }
|
|
213
273
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Vedeu
|
|
4
|
+
|
|
5
|
+
module Geometries
|
|
6
|
+
|
|
7
|
+
describe Positionable do
|
|
8
|
+
|
|
9
|
+
# describe '#position' do
|
|
10
|
+
# subject { instance.position }
|
|
11
|
+
|
|
12
|
+
# it { subject.must_be_instance_of(Vedeu::Geometries::Position) }
|
|
13
|
+
|
|
14
|
+
# # @todo Add more tests.
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# describe '#position=' do
|
|
18
|
+
# subject { instance.position=(value) }
|
|
19
|
+
|
|
20
|
+
# it { subject.must_be_instance_of(Vedeu::Geometries::Position) }
|
|
21
|
+
|
|
22
|
+
# # @todo Add more tests.
|
|
23
|
+
# end
|
|
24
|
+
|
|
25
|
+
# describe '#position?' do
|
|
26
|
+
# subject { instance.position? }
|
|
27
|
+
|
|
28
|
+
# # @todo Add more tests.
|
|
29
|
+
# end
|
|
30
|
+
|
|
31
|
+
# describe '#x' do
|
|
32
|
+
# let(:position) { Vedeu::Geometries::Position.coerce([17, 2]) }
|
|
33
|
+
|
|
34
|
+
# subject { instance.x }
|
|
35
|
+
|
|
36
|
+
# context 'when a position is set' do
|
|
37
|
+
# it { subject.must_equal(2) }
|
|
38
|
+
# end
|
|
39
|
+
|
|
40
|
+
# context 'when a position is not set' do
|
|
41
|
+
# let(:position) {}
|
|
42
|
+
|
|
43
|
+
# it { subject.must_equal(nil) }
|
|
44
|
+
# end
|
|
45
|
+
# end
|
|
46
|
+
|
|
47
|
+
# describe '#y' do
|
|
48
|
+
# let(:position) { Vedeu::Geometries::Position.coerce([17, 2]) }
|
|
49
|
+
|
|
50
|
+
# subject { instance.y }
|
|
51
|
+
|
|
52
|
+
# context 'when a position is set' do
|
|
53
|
+
# it { subject.must_equal(17) }
|
|
54
|
+
# end
|
|
55
|
+
|
|
56
|
+
# context 'when a position is not set' do
|
|
57
|
+
# let(:position) {}
|
|
58
|
+
|
|
59
|
+
# it { subject.must_equal(nil) }
|
|
60
|
+
# end
|
|
61
|
+
# end
|
|
62
|
+
|
|
63
|
+
end # Positionable
|
|
64
|
+
|
|
65
|
+
end # Positionable
|
|
66
|
+
|
|
67
|
+
end # Vedeu
|
|
@@ -51,16 +51,6 @@ module Vedeu
|
|
|
51
51
|
it { instance.must_respond_to(:==) }
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
describe '#position' do
|
|
55
|
-
it { instance.position.must_be_instance_of(Vedeu::Geometries::Position) }
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
describe '#position' do
|
|
59
|
-
subject { instance.position }
|
|
60
|
-
|
|
61
|
-
it { subject.must_be_instance_of(Vedeu::Geometries::Position) }
|
|
62
|
-
end
|
|
63
|
-
|
|
64
54
|
describe '#value' do
|
|
65
55
|
subject { instance.value }
|
|
66
56
|
|
|
@@ -54,8 +54,6 @@ module Vedeu
|
|
|
54
54
|
" \"parent\": {\n" \
|
|
55
55
|
" },\n" \
|
|
56
56
|
" \"position\": {\n" \
|
|
57
|
-
" \"y\": null,\n" \
|
|
58
|
-
" \"x\": null\n" \
|
|
59
57
|
" },\n" \
|
|
60
58
|
" \"style\": \"\",\n" \
|
|
61
59
|
" \"value\": \"a\"\n" \
|
|
@@ -70,8 +68,6 @@ module Vedeu
|
|
|
70
68
|
" \"parent\": {\n" \
|
|
71
69
|
" },\n" \
|
|
72
70
|
" \"position\": {\n" \
|
|
73
|
-
" \"y\": null,\n" \
|
|
74
|
-
" \"x\": null\n" \
|
|
75
71
|
" },\n" \
|
|
76
72
|
" \"style\": \"\",\n" \
|
|
77
73
|
" \"value\": \"\\u001b[0m\"\n" \
|
|
@@ -109,38 +109,35 @@ module Vedeu
|
|
|
109
109
|
it { subject.must_be_instance_of(Vedeu::Interfaces::Interface) }
|
|
110
110
|
end
|
|
111
111
|
|
|
112
|
-
describe '#position' do
|
|
113
|
-
subject { instance.position }
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
describe '#position=' do
|
|
117
|
-
subject { instance.position=(value) }
|
|
118
|
-
end
|
|
119
|
-
|
|
120
112
|
describe '#to_hash' do
|
|
113
|
+
let(:position) { Vedeu::Geometries::Position.coerce([17, 2]) }
|
|
114
|
+
let(:expected) {
|
|
115
|
+
{
|
|
116
|
+
border: '',
|
|
117
|
+
colour: {
|
|
118
|
+
background: '',
|
|
119
|
+
foreground: '',
|
|
120
|
+
},
|
|
121
|
+
name: 'Vedeu::Views::Char',
|
|
122
|
+
parent: {
|
|
123
|
+
background: '',
|
|
124
|
+
foreground: '',
|
|
125
|
+
style: '',
|
|
126
|
+
},
|
|
127
|
+
position: {
|
|
128
|
+
y: 17,
|
|
129
|
+
x: 2,
|
|
130
|
+
},
|
|
131
|
+
style: '',
|
|
132
|
+
value: 'a',
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
121
136
|
subject { instance.to_hash }
|
|
122
137
|
|
|
123
138
|
it { subject.must_be_instance_of(Hash) }
|
|
124
139
|
|
|
125
|
-
it { subject.must_equal(
|
|
126
|
-
border: '',
|
|
127
|
-
colour: {
|
|
128
|
-
background: '',
|
|
129
|
-
foreground: '',
|
|
130
|
-
},
|
|
131
|
-
name: 'Vedeu::Views::Char',
|
|
132
|
-
parent: {
|
|
133
|
-
background: '',
|
|
134
|
-
foreground: '',
|
|
135
|
-
style: '',
|
|
136
|
-
},
|
|
137
|
-
position: {
|
|
138
|
-
y: nil,
|
|
139
|
-
x: nil
|
|
140
|
-
},
|
|
141
|
-
style: '',
|
|
142
|
-
value: 'a')
|
|
143
|
-
}
|
|
140
|
+
it { subject.must_equal(expected) }
|
|
144
141
|
end
|
|
145
142
|
|
|
146
143
|
describe '#to_html' do
|
|
@@ -155,7 +152,7 @@ module Vedeu
|
|
|
155
152
|
it { subject.must_be_instance_of(String) }
|
|
156
153
|
|
|
157
154
|
context 'when a position is specified' do
|
|
158
|
-
let(:position) { Vedeu::Geometries::Position[17, 2] }
|
|
155
|
+
let(:position) { Vedeu::Geometries::Position.coerce([17, 2]) }
|
|
159
156
|
|
|
160
157
|
it { subject.must_equal("\e[17;2Ha") }
|
|
161
158
|
end
|
|
@@ -240,38 +237,6 @@ module Vedeu
|
|
|
240
237
|
end
|
|
241
238
|
end
|
|
242
239
|
|
|
243
|
-
describe '#x' do
|
|
244
|
-
let(:position) { Vedeu::Geometries::Position[17, 2] }
|
|
245
|
-
|
|
246
|
-
subject { instance.x }
|
|
247
|
-
|
|
248
|
-
context 'when a position is set' do
|
|
249
|
-
it { subject.must_equal(2) }
|
|
250
|
-
end
|
|
251
|
-
|
|
252
|
-
context 'when a position is not set' do
|
|
253
|
-
let(:position) {}
|
|
254
|
-
|
|
255
|
-
it { subject.must_equal(nil) }
|
|
256
|
-
end
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
describe '#y' do
|
|
260
|
-
let(:position) { Vedeu::Geometries::Position[17, 2] }
|
|
261
|
-
|
|
262
|
-
subject { instance.y }
|
|
263
|
-
|
|
264
|
-
context 'when a position is set' do
|
|
265
|
-
it { subject.must_equal(17) }
|
|
266
|
-
end
|
|
267
|
-
|
|
268
|
-
context 'when a position is not set' do
|
|
269
|
-
let(:position) {}
|
|
270
|
-
|
|
271
|
-
it { subject.must_equal(nil) }
|
|
272
|
-
end
|
|
273
|
-
end
|
|
274
|
-
|
|
275
240
|
end # Char
|
|
276
241
|
|
|
277
242
|
end # Views
|
data/vedeu.gemspec
CHANGED
|
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.add_development_dependency 'mocha', '1.1.0'
|
|
29
29
|
spec.add_development_dependency 'pry', '0.10.3'
|
|
30
30
|
spec.add_development_dependency 'rubocop', '0.35.1'
|
|
31
|
-
spec.add_development_dependency 'simplecov', '0.
|
|
31
|
+
spec.add_development_dependency 'simplecov', '0.11.0'
|
|
32
32
|
spec.add_development_dependency 'simplecov-console', '0.2.0'
|
|
33
33
|
spec.add_development_dependency 'yard', '0.8.7.6'
|
|
34
34
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vedeu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.71
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gavin Laking
|
|
@@ -128,14 +128,14 @@ dependencies:
|
|
|
128
128
|
requirements:
|
|
129
129
|
- - '='
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.
|
|
131
|
+
version: 0.11.0
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - '='
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.
|
|
138
|
+
version: 0.11.0
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: simplecov-console
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -433,6 +433,7 @@ files:
|
|
|
433
433
|
- lib/vedeu/geometries/geometry.rb
|
|
434
434
|
- lib/vedeu/geometries/move.rb
|
|
435
435
|
- lib/vedeu/geometries/position.rb
|
|
436
|
+
- lib/vedeu/geometries/positionable.rb
|
|
436
437
|
- lib/vedeu/geometries/repository.rb
|
|
437
438
|
- lib/vedeu/groups/all.rb
|
|
438
439
|
- lib/vedeu/groups/clear.rb
|
|
@@ -632,6 +633,7 @@ files:
|
|
|
632
633
|
- test/lib/vedeu/geometries/geometry_test.rb
|
|
633
634
|
- test/lib/vedeu/geometries/move_test.rb
|
|
634
635
|
- test/lib/vedeu/geometries/position_test.rb
|
|
636
|
+
- test/lib/vedeu/geometries/positionable_test.rb
|
|
635
637
|
- test/lib/vedeu/geometries/repository_test.rb
|
|
636
638
|
- test/lib/vedeu/groups/clear_test.rb
|
|
637
639
|
- test/lib/vedeu/groups/dsl_test.rb
|
|
@@ -857,6 +859,7 @@ test_files:
|
|
|
857
859
|
- test/lib/vedeu/geometries/geometry_test.rb
|
|
858
860
|
- test/lib/vedeu/geometries/move_test.rb
|
|
859
861
|
- test/lib/vedeu/geometries/position_test.rb
|
|
862
|
+
- test/lib/vedeu/geometries/positionable_test.rb
|
|
860
863
|
- test/lib/vedeu/geometries/repository_test.rb
|
|
861
864
|
- test/lib/vedeu/groups/clear_test.rb
|
|
862
865
|
- test/lib/vedeu/groups/dsl_test.rb
|