vedeu 0.4.28 → 0.4.29
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/api.rb +0 -4
- data/lib/vedeu/bindings.rb +3 -16
- data/lib/vedeu/geometry/all.rb +0 -1
- data/lib/vedeu/geometry/area.rb +31 -0
- data/lib/vedeu/geometry/geometry.rb +11 -33
- data/lib/vedeu/models/line.rb +2 -2
- data/lib/vedeu/output/clear.rb +18 -0
- data/lib/vedeu/output/presentation.rb +5 -13
- data/lib/vedeu/output/virtual_buffer.rb +4 -0
- data/lib/vedeu/repositories/repository.rb +1 -2
- data/test/lib/vedeu/api_test.rb +0 -8
- data/test/lib/vedeu/cursor/move_test.rb +0 -3
- data/test/lib/vedeu/dsl/components/border_test.rb +5 -4
- data/test/lib/vedeu/dsl/interface_test.rb +0 -4
- data/test/lib/vedeu/dsl/view_test.rb +2 -0
- data/test/lib/vedeu/geometry/position_validator_test.rb +10 -12
- data/test/lib/vedeu/input/mapper_test.rb +3 -11
- data/test/lib/vedeu/models/focus_test.rb +4 -1
- data/test/lib/vedeu/output/border_test.rb +4 -11
- data/test/lib/vedeu/output/clear_test.rb +17 -5
- data/test/lib/vedeu/output/viewport_test.rb +6 -3
- data/test/lib/vedeu/repositories/repository_test.rb +1 -4
- data/vedeu.gemspec +1 -1
- metadata +2 -5
- data/lib/vedeu/geometry/canvas.rb +0 -84
- data/test/lib/vedeu/geometry/canvas_test.rb +0 -74
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5054f0cadfac0fb38b0b9c4c800c3cd0f7aa08b7
|
|
4
|
+
data.tar.gz: a94e10fb79245068619c7cb78d4d6aaf5639e647
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c8f6d315b3bcd9f768ff40508b00be0e2360e65c42c1402fbc133ba0e5dedb1f7ebe9a1201500cb25be4483b407d07a57b7b03fc45dd8d07f28949fa34885c7d
|
|
7
|
+
data.tar.gz: 467d9b7608d6ff0e057b33f3c86579c7204c905f61f237fd753d940e26f86fcb56ada657a1f1639c6a4cf5c8b0c76e843eff8f143293729faf59bfe3dca58fea
|
data/lib/vedeu/api.rb
CHANGED
|
@@ -48,10 +48,6 @@ module Vedeu
|
|
|
48
48
|
# @see Vedeu::Buffers.buffers
|
|
49
49
|
def_delegators Vedeu::Buffers, :buffers
|
|
50
50
|
|
|
51
|
-
# @!method canvas
|
|
52
|
-
# @see Vedeu::Canvas.canvas
|
|
53
|
-
def_delegators Vedeu::Canvas, :canvas
|
|
54
|
-
|
|
55
51
|
# @!method configure
|
|
56
52
|
# @see Vedeu::Configuration.configure
|
|
57
53
|
# @!method configuration
|
data/lib/vedeu/bindings.rb
CHANGED
|
@@ -21,13 +21,9 @@ module Vedeu
|
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
Vedeu.bind(:_drb_retrieve_output_)
|
|
25
|
-
Vedeu.log(type: :drb, message: 'Retrieving output')
|
|
26
|
-
Vedeu::VirtualBuffer.retrieve
|
|
27
|
-
end
|
|
24
|
+
Vedeu.bind(:_drb_retrieve_output_) { Vedeu::VirtualBuffer.retrieve }
|
|
28
25
|
|
|
29
26
|
Vedeu.bind(:_drb_store_output_) do |data|
|
|
30
|
-
Vedeu.log(type: :drb, message: 'Storing output')
|
|
31
27
|
Vedeu::VirtualBuffer.store(Vedeu::Terminal.virtual.output(data))
|
|
32
28
|
end
|
|
33
29
|
|
|
@@ -174,19 +170,10 @@ module Vedeu
|
|
|
174
170
|
|
|
175
171
|
# Clears the whole terminal space, or the named interface area to be cleared
|
|
176
172
|
# if given.
|
|
177
|
-
Vedeu.bind(:_clear_)
|
|
178
|
-
Vedeu::Terminal.clear unless name
|
|
179
|
-
|
|
180
|
-
Vedeu::Clear.clear(Vedeu.interfaces.by_name(name),
|
|
181
|
-
clear_border: true, use_terminal_colours: true)
|
|
182
|
-
end
|
|
173
|
+
Vedeu.bind(:_clear_) { |name| Vedeu::Clear.by_name(name) }
|
|
183
174
|
|
|
184
175
|
# Clears the spaces occupied by the interfaces belonging to the named group.
|
|
185
|
-
Vedeu.bind(:_clear_group_)
|
|
186
|
-
Vedeu.groups.find(group_name).members.each do |interface_name|
|
|
187
|
-
Vedeu.trigger(:_clear_, interface_name)
|
|
188
|
-
end
|
|
189
|
-
end
|
|
176
|
+
Vedeu.bind(:_clear_group_) { |name| Vedeu::Clear.by_group(name) }
|
|
190
177
|
|
|
191
178
|
# Will cause all interfaces to refresh, or the named interface if given.
|
|
192
179
|
#
|
data/lib/vedeu/geometry/all.rb
CHANGED
data/lib/vedeu/geometry/area.rb
CHANGED
|
@@ -23,6 +23,37 @@ module Vedeu
|
|
|
23
23
|
attr_reader :xn
|
|
24
24
|
alias_method :right, :xn
|
|
25
25
|
|
|
26
|
+
# @param y [Fixnum]
|
|
27
|
+
# @param yn [Fixnum]
|
|
28
|
+
# @param y_yn [Fixnum]
|
|
29
|
+
# @param y_default [Fixnum]
|
|
30
|
+
# @param y_options [Hash<Symbol => Boolean>]
|
|
31
|
+
# @param x [Fixnum]
|
|
32
|
+
# @param xn [Fixnum]
|
|
33
|
+
# @param x_xn [Fixnum]
|
|
34
|
+
# @param x_default [Fixnum]
|
|
35
|
+
# @param x_options [Hash<Symbol => Boolean>]
|
|
36
|
+
# @return [Vedeu::Area]
|
|
37
|
+
def self.from_attributes(y:, yn:, y_yn:, y_default:,
|
|
38
|
+
x:, xn:, x_xn:, x_default:, options:)
|
|
39
|
+
y_yn = Vedeu::Dimension.pair({
|
|
40
|
+
d: y,
|
|
41
|
+
dn: yn,
|
|
42
|
+
d_dn: y_yn,
|
|
43
|
+
default: y_default,
|
|
44
|
+
options: options,
|
|
45
|
+
})
|
|
46
|
+
x_xn = Vedeu::Dimension.pair({
|
|
47
|
+
d: x,
|
|
48
|
+
dn: xn,
|
|
49
|
+
d_dn: x_xn,
|
|
50
|
+
default: x_default,
|
|
51
|
+
options: options,
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
from_dimensions(y_yn: y_yn, x_xn: x_xn)
|
|
55
|
+
end
|
|
56
|
+
|
|
26
57
|
# @param y_yn [Array<Fixnum>]
|
|
27
58
|
# @param x_xn [Array<Fixnum>]
|
|
28
59
|
# @return [Vedeu::Area]
|
|
@@ -146,29 +146,17 @@ module Vedeu
|
|
|
146
146
|
|
|
147
147
|
# @return [Vedeu::Area]
|
|
148
148
|
def area
|
|
149
|
-
@area = Vedeu::Area.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
# @return [Hash<Symbol => Fixnum, Hash]
|
|
164
|
-
def width_attributes
|
|
165
|
-
{
|
|
166
|
-
d: _x,
|
|
167
|
-
dn: _xn,
|
|
168
|
-
d_dn: @width,
|
|
169
|
-
default: Vedeu::Terminal.width,
|
|
170
|
-
options: dimension_options,
|
|
171
|
-
}
|
|
149
|
+
@area = Vedeu::Area.from_attributes(
|
|
150
|
+
y: _y,
|
|
151
|
+
yn: _yn,
|
|
152
|
+
y_yn: @height,
|
|
153
|
+
y_default: Vedeu::Terminal.height,
|
|
154
|
+
x: _x,
|
|
155
|
+
xn: _xn,
|
|
156
|
+
x_xn: @width,
|
|
157
|
+
x_default: Vedeu::Terminal.width,
|
|
158
|
+
options: dimension_options,
|
|
159
|
+
)
|
|
172
160
|
end
|
|
173
161
|
|
|
174
162
|
# @return [Hash<Symbol => Boolean>]
|
|
@@ -179,16 +167,6 @@ module Vedeu
|
|
|
179
167
|
}
|
|
180
168
|
end
|
|
181
169
|
|
|
182
|
-
# @return [Array<Fixnum>]
|
|
183
|
-
def x_xn
|
|
184
|
-
@x_xn = Vedeu::Dimension.pair(width_attributes)
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
# @return [Array<Fixnum>]
|
|
188
|
-
def y_yn
|
|
189
|
-
@y_yn = Vedeu::Dimension.pair(height_attributes)
|
|
190
|
-
end
|
|
191
|
-
|
|
192
170
|
# Returns the row/line start position for the interface.
|
|
193
171
|
#
|
|
194
172
|
# @return [Fixnum]
|
data/lib/vedeu/models/line.rb
CHANGED
|
@@ -41,7 +41,7 @@ module Vedeu
|
|
|
41
41
|
# @param child []
|
|
42
42
|
# @return [void]
|
|
43
43
|
def add(child)
|
|
44
|
-
@streams = streams.add(child)
|
|
44
|
+
@_streams = @streams = collection.coerce(streams, self).add(child)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
# Returns an array of all the characters with formatting for this line.
|
|
@@ -75,7 +75,7 @@ module Vedeu
|
|
|
75
75
|
|
|
76
76
|
# @return [Vedeu::Streams]
|
|
77
77
|
def streams
|
|
78
|
-
collection.coerce(@streams, self)
|
|
78
|
+
@_streams ||= collection.coerce(@streams, self)
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
# Delegate to Vedeu::Interface#width if available.
|
data/lib/vedeu/output/clear.rb
CHANGED
|
@@ -21,6 +21,24 @@ module Vedeu
|
|
|
21
21
|
|
|
22
22
|
class << self
|
|
23
23
|
|
|
24
|
+
# @param group [String]
|
|
25
|
+
# @return [void]
|
|
26
|
+
def by_group(group = nil)
|
|
27
|
+
return unless group
|
|
28
|
+
|
|
29
|
+
Vedeu.groups.find(group).members.each { |name| clear(name) }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @param name [String]
|
|
33
|
+
# @return [void]
|
|
34
|
+
def by_name(name = nil)
|
|
35
|
+
return Vedeu::Terminal.clear unless name
|
|
36
|
+
|
|
37
|
+
clear(Vedeu.interfaces.by_name(name),
|
|
38
|
+
clear_border: true,
|
|
39
|
+
use_terminal_colours: true)
|
|
40
|
+
end
|
|
41
|
+
|
|
24
42
|
# Clears the area defined by the interface.
|
|
25
43
|
#
|
|
26
44
|
# @return [Array|String]
|
|
@@ -11,15 +11,14 @@ module Vedeu
|
|
|
11
11
|
colour.background
|
|
12
12
|
|
|
13
13
|
else
|
|
14
|
-
|
|
15
|
-
# @todo: Should this be: parent_background
|
|
14
|
+
parent_background
|
|
16
15
|
|
|
17
16
|
end
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
# @return [Vedeu::Background]
|
|
21
20
|
def background=(value)
|
|
22
|
-
attributes[:background] = value
|
|
21
|
+
@attributes[:background] = value
|
|
23
22
|
@background = colour.background = Vedeu::Background.coerce(value)
|
|
24
23
|
end
|
|
25
24
|
|
|
@@ -30,7 +29,7 @@ module Vedeu
|
|
|
30
29
|
|
|
31
30
|
# @return [Vedeu::Colour]
|
|
32
31
|
def colour=(value)
|
|
33
|
-
attributes[:colour] = value
|
|
32
|
+
@attributes[:colour] = value
|
|
34
33
|
@colour = Vedeu::Colour.coerce(value)
|
|
35
34
|
end
|
|
36
35
|
|
|
@@ -40,15 +39,14 @@ module Vedeu
|
|
|
40
39
|
colour.foreground
|
|
41
40
|
|
|
42
41
|
else
|
|
43
|
-
|
|
44
|
-
# @todo: Should this be: parent_foreground
|
|
42
|
+
parent_foreground
|
|
45
43
|
|
|
46
44
|
end
|
|
47
45
|
end
|
|
48
46
|
|
|
49
47
|
# @return [Vedeu::Foreground]
|
|
50
48
|
def foreground=(value)
|
|
51
|
-
attributes[:foreground] = value
|
|
49
|
+
@attributes[:foreground] = value
|
|
52
50
|
@foreground = colour.foreground = Vedeu::Foreground.coerce(value)
|
|
53
51
|
end
|
|
54
52
|
|
|
@@ -98,12 +96,6 @@ module Vedeu
|
|
|
98
96
|
# model has previously set the colour and style, reverts back to that for
|
|
99
97
|
# consistent formatting.
|
|
100
98
|
#
|
|
101
|
-
# @note
|
|
102
|
-
# Aliasing #to_str to #to_s seems to reduce rendering time by around ~20ms
|
|
103
|
-
# for normal sized (80x25) terminals.
|
|
104
|
-
# @todo
|
|
105
|
-
# Must investigate. (GL 2015-06-05)
|
|
106
|
-
#
|
|
107
99
|
# @return [String] An escape sequence with value interpolated.
|
|
108
100
|
def to_s
|
|
109
101
|
render_position { render_colour { render_style { value } } }
|
|
@@ -20,6 +20,8 @@ module Vedeu
|
|
|
20
20
|
#
|
|
21
21
|
# @return [Array<Array<Vedeu::Char>>|NilClass]
|
|
22
22
|
def retrieve
|
|
23
|
+
Vedeu.log(type: :drb, message: 'Retrieving output')
|
|
24
|
+
|
|
23
25
|
storage.pop
|
|
24
26
|
end
|
|
25
27
|
|
|
@@ -27,6 +29,8 @@ module Vedeu
|
|
|
27
29
|
#
|
|
28
30
|
# @return [Array<Array<Vedeu::Char>>]
|
|
29
31
|
def store(data)
|
|
32
|
+
Vedeu.log(type: :drb, message: 'Storing output')
|
|
33
|
+
|
|
30
34
|
storage.unshift(data)
|
|
31
35
|
end
|
|
32
36
|
|
data/test/lib/vedeu/api_test.rb
CHANGED
|
@@ -30,14 +30,6 @@ module Vedeu
|
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
describe 'Vedeu::Canvas' do
|
|
34
|
-
describe '.canvas' do
|
|
35
|
-
subject { Vedeu.canvas }
|
|
36
|
-
|
|
37
|
-
it { subject.must_be_instance_of(Vedeu::Canvas) }
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
33
|
describe 'Vedeu::Configuration' do
|
|
42
34
|
describe '.configure' do
|
|
43
35
|
subject { Vedeu.configure }
|
|
@@ -14,9 +14,6 @@ module Vedeu
|
|
|
14
14
|
let(:boolean) { true }
|
|
15
15
|
|
|
16
16
|
before do
|
|
17
|
-
Vedeu.borders.reset
|
|
18
|
-
Vedeu.buffers.reset
|
|
19
|
-
Vedeu.interfaces.reset
|
|
20
17
|
Vedeu.interface 'borders' do
|
|
21
18
|
geometry do
|
|
22
19
|
height 3
|
|
@@ -27,7 +24,11 @@ module Vedeu
|
|
|
27
24
|
end
|
|
28
25
|
end
|
|
29
26
|
end
|
|
30
|
-
after
|
|
27
|
+
after do
|
|
28
|
+
Vedeu.borders.reset
|
|
29
|
+
Vedeu.buffers.reset
|
|
30
|
+
Vedeu.interfaces.reset
|
|
31
|
+
end
|
|
31
32
|
|
|
32
33
|
describe 'alias methods' do
|
|
33
34
|
it { instance.must_respond_to(:show_bottom) }
|
|
@@ -284,8 +284,6 @@ module Vedeu
|
|
|
284
284
|
end
|
|
285
285
|
|
|
286
286
|
describe '#show!' do
|
|
287
|
-
after { Vedeu.interfaces.reset }
|
|
288
|
-
|
|
289
287
|
subject {
|
|
290
288
|
Vedeu.interface 'xenon' do
|
|
291
289
|
show!
|
|
@@ -296,8 +294,6 @@ module Vedeu
|
|
|
296
294
|
end
|
|
297
295
|
|
|
298
296
|
describe '#hide!' do
|
|
299
|
-
after { Vedeu.interfaces.reset }
|
|
300
|
-
|
|
301
297
|
subject {
|
|
302
298
|
Vedeu.interface 'xenon' do
|
|
303
299
|
hide!
|
|
@@ -50,6 +50,7 @@ module Vedeu
|
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
context 'when the block is given' do
|
|
53
|
+
it { subject.must_equal([]) }
|
|
53
54
|
end
|
|
54
55
|
end
|
|
55
56
|
|
|
@@ -69,6 +70,7 @@ module Vedeu
|
|
|
69
70
|
end
|
|
70
71
|
|
|
71
72
|
context 'when the block is given' do
|
|
73
|
+
it { subject.must_equal([]) }
|
|
72
74
|
end
|
|
73
75
|
end
|
|
74
76
|
|
|
@@ -9,27 +9,25 @@ module Vedeu
|
|
|
9
9
|
let(:_name) { 'position_validator' }
|
|
10
10
|
let(:x) { 1 }
|
|
11
11
|
let(:y) { 1 }
|
|
12
|
-
let(:
|
|
12
|
+
let(:enabled) { true }
|
|
13
|
+
|
|
14
|
+
before do
|
|
15
|
+
IO.console.stubs(:size).returns([15, 40])
|
|
13
16
|
Vedeu::Border.new({
|
|
14
17
|
name: _name,
|
|
15
18
|
enabled: enabled,
|
|
16
|
-
})
|
|
17
|
-
}
|
|
18
|
-
let(:enabled) { true }
|
|
19
|
-
let(:geometry) {
|
|
19
|
+
}).store
|
|
20
20
|
Vedeu::Geometry.new({
|
|
21
21
|
name: _name,
|
|
22
22
|
x: 5,
|
|
23
23
|
xn: 35,
|
|
24
24
|
y: 5,
|
|
25
25
|
yn: 10
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Vedeu.borders.stubs(:by_name).returns(border)
|
|
32
|
-
Vedeu.geometries.stubs(:by_name).returns(geometry)
|
|
26
|
+
}).store
|
|
27
|
+
end
|
|
28
|
+
after do
|
|
29
|
+
Vedeu.borders.reset
|
|
30
|
+
Vedeu.geometries.reset
|
|
33
31
|
end
|
|
34
32
|
|
|
35
33
|
describe '#initialize' do
|
|
@@ -10,9 +10,7 @@ module Vedeu
|
|
|
10
10
|
let(:keymap) {}
|
|
11
11
|
let(:repository) {}
|
|
12
12
|
|
|
13
|
-
before
|
|
14
|
-
Vedeu.keymaps.reset
|
|
15
|
-
end
|
|
13
|
+
before { Vedeu.keymaps.reset }
|
|
16
14
|
|
|
17
15
|
describe '#initialize' do
|
|
18
16
|
it { instance.must_be_instance_of(described) }
|
|
@@ -47,10 +45,7 @@ module Vedeu
|
|
|
47
45
|
let(:key_test) { Key.new('a') { :do_something } }
|
|
48
46
|
let(:keymap_test) { Keymap.new(name: 'test', keys: [key_test]) }
|
|
49
47
|
|
|
50
|
-
before
|
|
51
|
-
Vedeu.keymaps.reset
|
|
52
|
-
Vedeu.keymaps.store(keymap_test)
|
|
53
|
-
end
|
|
48
|
+
before { Vedeu.keymaps.store(keymap_test) }
|
|
54
49
|
|
|
55
50
|
it { subject.must_equal(true) }
|
|
56
51
|
end
|
|
@@ -77,10 +72,7 @@ module Vedeu
|
|
|
77
72
|
let(:key_test) { Key.new('a') { :do_something } }
|
|
78
73
|
let(:keymap_test) { Keymap.new(name: 'test', keys: [key_test]) }
|
|
79
74
|
|
|
80
|
-
before
|
|
81
|
-
Vedeu.keymaps.reset
|
|
82
|
-
Vedeu.keymaps.store(keymap_test)
|
|
83
|
-
end
|
|
75
|
+
before { Vedeu.keymaps.store(keymap_test) }
|
|
84
76
|
|
|
85
77
|
it { subject.must_equal(false) }
|
|
86
78
|
end
|
|
@@ -13,8 +13,6 @@ module Vedeu
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
before do
|
|
16
|
-
Vedeu.interfaces.reset
|
|
17
|
-
Vedeu.borders.reset
|
|
18
16
|
Vedeu.interface 'borders' do
|
|
19
17
|
geometry do
|
|
20
18
|
height 5
|
|
@@ -30,7 +28,10 @@ module Vedeu
|
|
|
30
28
|
end
|
|
31
29
|
end
|
|
32
30
|
end
|
|
33
|
-
after
|
|
31
|
+
after do
|
|
32
|
+
Vedeu.interfaces.reset
|
|
33
|
+
Vedeu.borders.reset
|
|
34
|
+
end
|
|
34
35
|
|
|
35
36
|
describe '.build' do
|
|
36
37
|
subject {
|
|
@@ -100,9 +101,6 @@ module Vedeu
|
|
|
100
101
|
let(:right) { false }
|
|
101
102
|
|
|
102
103
|
before do
|
|
103
|
-
Vedeu.interfaces.reset
|
|
104
|
-
Vedeu.borders.reset
|
|
105
|
-
|
|
106
104
|
Vedeu.interface('Border#bxbxnbybyn') do
|
|
107
105
|
geometry do
|
|
108
106
|
x 2
|
|
@@ -112,7 +110,6 @@ module Vedeu
|
|
|
112
110
|
end
|
|
113
111
|
end
|
|
114
112
|
end
|
|
115
|
-
after { Vedeu.interfaces.reset }
|
|
116
113
|
|
|
117
114
|
describe '#bx' do
|
|
118
115
|
subject { instance.bx }
|
|
@@ -413,9 +410,6 @@ module Vedeu
|
|
|
413
410
|
let(:visibility) { true }
|
|
414
411
|
|
|
415
412
|
before do
|
|
416
|
-
Vedeu.interfaces.reset
|
|
417
|
-
Vedeu.borders.reset
|
|
418
|
-
|
|
419
413
|
Vedeu.interface('Border#render') do
|
|
420
414
|
geometry do
|
|
421
415
|
x 1
|
|
@@ -426,7 +420,6 @@ module Vedeu
|
|
|
426
420
|
visible(visibility)
|
|
427
421
|
end
|
|
428
422
|
end
|
|
429
|
-
after { Vedeu.interfaces.reset }
|
|
430
423
|
|
|
431
424
|
subject { instance.render }
|
|
432
425
|
|
|
@@ -7,11 +7,7 @@ module Vedeu
|
|
|
7
7
|
let(:described) { Vedeu::Clear }
|
|
8
8
|
let(:instance) { described.new(interface, options) }
|
|
9
9
|
let(:interface) { Vedeu::Interface.new(name: 'xenon', visible: visible) }
|
|
10
|
-
let(:options) {
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
}
|
|
10
|
+
let(:options) { {} }
|
|
15
11
|
let(:visible) { true }
|
|
16
12
|
let(:drb) { false }
|
|
17
13
|
|
|
@@ -21,6 +17,10 @@ module Vedeu
|
|
|
21
17
|
Vedeu::Configuration.stubs(:drb?).returns(drb)
|
|
22
18
|
Vedeu.renderers.stubs(:render)
|
|
23
19
|
end
|
|
20
|
+
after do
|
|
21
|
+
Vedeu.borders.reset
|
|
22
|
+
Vedeu.geometries.reset
|
|
23
|
+
end
|
|
24
24
|
|
|
25
25
|
describe '#initialize' do
|
|
26
26
|
it { instance.must_be_instance_of(described) }
|
|
@@ -32,6 +32,18 @@ module Vedeu
|
|
|
32
32
|
it { described.must_respond_to(:render) }
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
+
# describe '.by_group' do
|
|
36
|
+
# subject { described.by_group(group) }
|
|
37
|
+
|
|
38
|
+
# it { skip }
|
|
39
|
+
# end
|
|
40
|
+
|
|
41
|
+
# describe '.by_name' do
|
|
42
|
+
# subject { described.by_name(_name) }
|
|
43
|
+
|
|
44
|
+
# it { skip }
|
|
45
|
+
# end
|
|
46
|
+
|
|
35
47
|
describe '.clear' do
|
|
36
48
|
subject { described.clear(interface, options) }
|
|
37
49
|
|
|
@@ -6,7 +6,10 @@ module Vedeu
|
|
|
6
6
|
|
|
7
7
|
let(:described) { Vedeu::Viewport }
|
|
8
8
|
let(:instance) { described.new(interface) }
|
|
9
|
-
let(:interface) {
|
|
9
|
+
let(:interface) { Vedeu.interfaces.by_name('lithium') }
|
|
10
|
+
let(:visibility) { true }
|
|
11
|
+
|
|
12
|
+
before do
|
|
10
13
|
Vedeu.interface 'lithium' do
|
|
11
14
|
geometry do
|
|
12
15
|
height 3
|
|
@@ -22,8 +25,8 @@ module Vedeu
|
|
|
22
25
|
end
|
|
23
26
|
visible(visibility)
|
|
24
27
|
end
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
end
|
|
29
|
+
after { Vedeu.interfaces.reset }
|
|
27
30
|
|
|
28
31
|
describe '#initialize' do
|
|
29
32
|
it { instance.must_be_instance_of(described) }
|
|
@@ -175,13 +175,10 @@ module Vedeu
|
|
|
175
175
|
|
|
176
176
|
context 'when there are models stored in the repository' do
|
|
177
177
|
before do
|
|
178
|
-
Vedeu.interfaces.reset
|
|
179
178
|
Vedeu.interface('hydrogen') {}
|
|
180
179
|
Vedeu.interface('helium') {}
|
|
181
180
|
end
|
|
182
|
-
after
|
|
183
|
-
Vedeu.interfaces.reset
|
|
184
|
-
end
|
|
181
|
+
after { Vedeu.interfaces.reset }
|
|
185
182
|
|
|
186
183
|
subject { Vedeu.interfaces.inspect }
|
|
187
184
|
|
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.4.
|
|
7
|
+
spec.version = '0.4.29'
|
|
8
8
|
spec.authors = ['Gavin Laking']
|
|
9
9
|
spec.email = ['gavinlaking@gmail.com']
|
|
10
10
|
spec.summary = 'A terminal case of wonderland.'
|
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.4.
|
|
4
|
+
version: 0.4.29
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gavin Laking
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-06-
|
|
11
|
+
date: 2015-06-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -340,7 +340,6 @@ files:
|
|
|
340
340
|
- lib/vedeu/events/trigger.rb
|
|
341
341
|
- lib/vedeu/geometry/all.rb
|
|
342
342
|
- lib/vedeu/geometry/area.rb
|
|
343
|
-
- lib/vedeu/geometry/canvas.rb
|
|
344
343
|
- lib/vedeu/geometry/coordinate.rb
|
|
345
344
|
- lib/vedeu/geometry/dimension.rb
|
|
346
345
|
- lib/vedeu/geometry/geometry.rb
|
|
@@ -472,7 +471,6 @@ files:
|
|
|
472
471
|
- test/lib/vedeu/events/event_test.rb
|
|
473
472
|
- test/lib/vedeu/events/trigger_test.rb
|
|
474
473
|
- test/lib/vedeu/geometry/area_test.rb
|
|
475
|
-
- test/lib/vedeu/geometry/canvas_test.rb
|
|
476
474
|
- test/lib/vedeu/geometry/coordinate_test.rb
|
|
477
475
|
- test/lib/vedeu/geometry/dimension_test.rb
|
|
478
476
|
- test/lib/vedeu/geometry/geometry_test.rb
|
|
@@ -627,7 +625,6 @@ test_files:
|
|
|
627
625
|
- test/lib/vedeu/events/event_test.rb
|
|
628
626
|
- test/lib/vedeu/events/trigger_test.rb
|
|
629
627
|
- test/lib/vedeu/geometry/area_test.rb
|
|
630
|
-
- test/lib/vedeu/geometry/canvas_test.rb
|
|
631
628
|
- test/lib/vedeu/geometry/coordinate_test.rb
|
|
632
629
|
- test/lib/vedeu/geometry/dimension_test.rb
|
|
633
630
|
- test/lib/vedeu/geometry/geometry_test.rb
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
module Vedeu
|
|
2
|
-
|
|
3
|
-
# The size of the terminal is a limitation. Defining a canvas means we have
|
|
4
|
-
# more space to 'do stuff'.
|
|
5
|
-
class Canvas
|
|
6
|
-
|
|
7
|
-
include Singleton
|
|
8
|
-
|
|
9
|
-
# @!attribute [r] yn
|
|
10
|
-
# @return [Fixnum]
|
|
11
|
-
attr_reader :yn
|
|
12
|
-
alias_method :bottom, :yn
|
|
13
|
-
alias_method :height, :yn
|
|
14
|
-
|
|
15
|
-
# @!attribute [r] xn
|
|
16
|
-
# @return [Fixnum]
|
|
17
|
-
attr_reader :xn
|
|
18
|
-
alias_method :right, :xn
|
|
19
|
-
alias_method :width, :xn
|
|
20
|
-
|
|
21
|
-
# @return [Vedeu::Canvas]
|
|
22
|
-
def self.canvas
|
|
23
|
-
instance
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# @param yn [Fixnum]
|
|
27
|
-
# @param xn [Fixnum]
|
|
28
|
-
# @return [Vedeu::Canvas]
|
|
29
|
-
def configure(yn, xn)
|
|
30
|
-
@yn = yn
|
|
31
|
-
@xn = xn
|
|
32
|
-
|
|
33
|
-
self
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# @return [Array]
|
|
37
|
-
def c
|
|
38
|
-
[cy, cx]
|
|
39
|
-
end
|
|
40
|
-
alias_method :centre, :c
|
|
41
|
-
|
|
42
|
-
# @return [Fixnum]
|
|
43
|
-
def cy
|
|
44
|
-
(height / 2) + y
|
|
45
|
-
end
|
|
46
|
-
alias_method :centre_y, :cy
|
|
47
|
-
|
|
48
|
-
# @return [Fixnum]
|
|
49
|
-
def cx
|
|
50
|
-
(width / 2) + x
|
|
51
|
-
end
|
|
52
|
-
alias_method :centre_x, :cx
|
|
53
|
-
|
|
54
|
-
# @return [Fixnum]
|
|
55
|
-
def o
|
|
56
|
-
1
|
|
57
|
-
end
|
|
58
|
-
alias_method :origin, :o
|
|
59
|
-
|
|
60
|
-
# @return [Fixnum]
|
|
61
|
-
def height
|
|
62
|
-
(y..yn).size
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# @return [Fixnum]
|
|
66
|
-
def width
|
|
67
|
-
(x..xn).size
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# @return [Fixnum]
|
|
71
|
-
def y
|
|
72
|
-
1
|
|
73
|
-
end
|
|
74
|
-
alias_method :top, :y
|
|
75
|
-
|
|
76
|
-
# @return [Fixnum]
|
|
77
|
-
def x
|
|
78
|
-
1
|
|
79
|
-
end
|
|
80
|
-
alias_method :left, :x
|
|
81
|
-
|
|
82
|
-
end # Canvas
|
|
83
|
-
|
|
84
|
-
end # Vedeu
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
module Vedeu
|
|
4
|
-
|
|
5
|
-
describe Canvas do
|
|
6
|
-
|
|
7
|
-
let(:described) { Vedeu::Canvas }
|
|
8
|
-
let(:instance) { described.canvas }
|
|
9
|
-
let(:yn) { 25 }
|
|
10
|
-
let(:xn) { 80 }
|
|
11
|
-
|
|
12
|
-
before { instance.configure(yn, xn) }
|
|
13
|
-
|
|
14
|
-
describe '.canvas' do
|
|
15
|
-
it { instance.must_be_instance_of(described) }
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
describe '#configure' do
|
|
19
|
-
it { instance.must_be_instance_of(described) }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
describe '#c' do
|
|
23
|
-
it { instance.c.must_equal([13, 41]) }
|
|
24
|
-
it { instance.must_respond_to(:centre) }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
describe '#cy' do
|
|
28
|
-
it { instance.cy.must_equal(13) }
|
|
29
|
-
it { instance.must_respond_to(:centre_y) }
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
describe '#cx' do
|
|
33
|
-
it { instance.cx.must_equal(41) }
|
|
34
|
-
it { instance.must_respond_to(:centre_x) }
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
describe '#o' do
|
|
38
|
-
it { instance.o.must_equal(1) }
|
|
39
|
-
it { instance.must_respond_to(:origin) }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
describe '#height' do
|
|
43
|
-
it { instance.height.must_equal(25) }
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
describe '#width' do
|
|
47
|
-
it { instance.width.must_equal(80) }
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
describe '#y' do
|
|
51
|
-
it { instance.y.must_equal(1) }
|
|
52
|
-
it { instance.must_respond_to(:top) }
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
describe '#yn' do
|
|
56
|
-
it { instance.yn.must_equal(25) }
|
|
57
|
-
it { instance.must_respond_to(:bottom) }
|
|
58
|
-
it { instance.must_respond_to(:height) }
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
describe '#x' do
|
|
62
|
-
it { instance.x.must_equal(1) }
|
|
63
|
-
it { instance.must_respond_to(:left) }
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
describe '#xn' do
|
|
67
|
-
it { instance.xn.must_equal(80) }
|
|
68
|
-
it { instance.must_respond_to(:right) }
|
|
69
|
-
it { instance.must_respond_to(:width) }
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
end # Canvas
|
|
73
|
-
|
|
74
|
-
end # Vedeu
|