vedeu 0.4.23 → 0.4.24
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/examples/cursor_app.rb +9 -4
- data/lib/vedeu/bindings.rb +36 -9
- data/lib/vedeu/cursor/move.rb +49 -55
- data/lib/vedeu/geometry/coordinate.rb +51 -38
- data/lib/vedeu/geometry/geometry.rb +44 -16
- data/lib/vedeu/geometry/position.rb +2 -6
- data/lib/vedeu/input/mapper.rb +2 -0
- data/lib/vedeu/models/char.rb +2 -2
- data/lib/vedeu/output/all.rb +1 -1
- data/lib/vedeu/output/border.rb +8 -6
- data/lib/vedeu/output/clear.rb +17 -19
- data/lib/vedeu/output/refresh.rb +4 -10
- data/lib/vedeu/output/renderers/all.rb +1 -2
- data/lib/vedeu/output/renderers/terminal.rb +3 -1
- data/lib/vedeu/output/viewport.rb +8 -8
- data/lib/vedeu/repositories/collections/all.rb +33 -6
- data/lib/vedeu/repositories/registerable.rb +21 -0
- data/lib/vedeu/repositories/repositories/borders.rb +2 -1
- data/lib/vedeu/repositories/repositories/buffers.rb +2 -1
- data/lib/vedeu/repositories/repositories/cursors.rb +1 -1
- data/lib/vedeu/repositories/repositories/events_repository.rb +1 -1
- data/lib/vedeu/repositories/repositories/geometries.rb +2 -1
- data/lib/vedeu/repositories/repositories/groups.rb +1 -1
- data/lib/vedeu/repositories/repositories/interfaces_repository.rb +2 -1
- data/lib/vedeu/repositories/repositories/keymaps.rb +1 -1
- data/lib/vedeu/repositories/repositories/menus.rb +1 -1
- data/lib/vedeu/repositories/repository.rb +1 -10
- data/lib/vedeu/support/log.rb +27 -13
- data/lib/vedeu/support/terminal.rb +1 -1
- data/lib/vedeu/support/timer.rb +11 -4
- data/test/lib/vedeu/cursor/move_test.rb +9 -7
- data/test/lib/vedeu/geometry/coordinate_test.rb +29 -21
- data/test/lib/vedeu/geometry/geometry_test.rb +14 -2
- data/test/lib/vedeu/repositories/collections/all_test.rb +71 -0
- data/vedeu.gemspec +2 -5
- metadata +6 -22
- data/lib/vedeu/repositories/collections/chars.rb +0 -8
- data/lib/vedeu/repositories/collections/events.rb +0 -8
- data/lib/vedeu/repositories/collections/interfaces.rb +0 -8
- data/lib/vedeu/repositories/collections/keys.rb +0 -8
- data/lib/vedeu/repositories/collections/lines.rb +0 -8
- data/lib/vedeu/repositories/collections/streams.rb +0 -8
- data/test/lib/vedeu/repositories/collections/chars_test.rb +0 -16
- data/test/lib/vedeu/repositories/collections/events_test.rb +0 -16
- data/test/lib/vedeu/repositories/collections/interfaces_test.rb +0 -16
- data/test/lib/vedeu/repositories/collections/keys_test.rb +0 -16
- data/test/lib/vedeu/repositories/collections/lines_test.rb +0 -16
- data/test/lib/vedeu/repositories/collections/streams_test.rb +0 -16
@@ -26,8 +26,7 @@ module Vedeu
|
|
26
26
|
threads = storage.map do |renderer|
|
27
27
|
Thread.new(renderer) do
|
28
28
|
mutex.synchronize do
|
29
|
-
Vedeu.log(type: :debug,
|
30
|
-
message: "Rendering with: '#{renderer}' (#{storage.size} defined)")
|
29
|
+
Vedeu.log(type: :debug, message: "Rendering with: '#{renderer}'")
|
31
30
|
renderer.render(*args)
|
32
31
|
end
|
33
32
|
end
|
@@ -52,16 +52,16 @@ module Vedeu
|
|
52
52
|
def render
|
53
53
|
return [] unless visible?
|
54
54
|
|
55
|
-
Vedeu.
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
55
|
+
Vedeu::Timer.for(:output, "Rendering: #{name}") do
|
56
|
+
out = []
|
57
|
+
show[0...height].each_with_index do |line, iy|
|
58
|
+
line[0...width].each_with_index do |column, ix|
|
59
|
+
column.position = Vedeu::IndexPosition[iy, ix, by, bx]
|
60
|
+
out << column
|
61
|
+
end
|
62
62
|
end
|
63
|
+
out
|
63
64
|
end
|
64
|
-
out
|
65
65
|
end
|
66
66
|
|
67
67
|
# Returns a string representation of the viewport.
|
@@ -1,8 +1,35 @@
|
|
1
1
|
require 'vedeu/repositories/collection'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
module Vedeu
|
4
|
+
|
5
|
+
# A collection of {Vedeu::Char} instances.
|
6
|
+
class Chars < Vedeu::Collection
|
7
|
+
|
8
|
+
end # Chars
|
9
|
+
|
10
|
+
# A collection of {Vedeu::Event} instances.
|
11
|
+
class Events < Vedeu::Collection
|
12
|
+
|
13
|
+
end # Events
|
14
|
+
|
15
|
+
# A collection of {Vedeu::Interface} instances.
|
16
|
+
class Interfaces < Vedeu::Collection
|
17
|
+
|
18
|
+
end # Interfaces
|
19
|
+
|
20
|
+
# A collection of {Vedeu::Key} instances.
|
21
|
+
class Keys < Vedeu::Collection
|
22
|
+
|
23
|
+
end # Keys
|
24
|
+
|
25
|
+
# A collection of {Vedeu::Line} instances.
|
26
|
+
class Lines < Vedeu::Collection
|
27
|
+
|
28
|
+
end # Lines
|
29
|
+
|
30
|
+
# A collection of {Vedeu::Stream} instances.
|
31
|
+
class Streams < Vedeu::Collection
|
32
|
+
|
33
|
+
end # Streams
|
34
|
+
|
35
|
+
end
|
@@ -7,12 +7,33 @@ module Vedeu
|
|
7
7
|
# These class methods are mixed into the repository.
|
8
8
|
module ClassMethods
|
9
9
|
|
10
|
+
# The null model is used when the repository cannot be found.
|
11
|
+
#
|
10
12
|
# @param klass [Class]
|
11
13
|
# @return [Symbol]
|
12
14
|
def null(klass)
|
13
15
|
define_method(:null_model) { klass }
|
14
16
|
end
|
15
17
|
|
18
|
+
# The real model is the usual model to use for a given repository.
|
19
|
+
#
|
20
|
+
# @param klass [Class]
|
21
|
+
# @return [Symbol]
|
22
|
+
def real(klass)
|
23
|
+
define_method(:real_model) { klass }
|
24
|
+
end
|
25
|
+
|
26
|
+
# Register a repository for storing models.
|
27
|
+
#
|
28
|
+
# @param model [Class]
|
29
|
+
# @param storage [Class|Hash]
|
30
|
+
# @return [Vedeu::Repository]
|
31
|
+
def register(model = nil, storage = {})
|
32
|
+
new(model, storage).tap do |klass|
|
33
|
+
Vedeu::Repositories.register(klass.repository)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
16
37
|
end # ClassMethods
|
17
38
|
|
18
39
|
# When this module is included in a class, provide ClassMethods as class
|
@@ -16,12 +16,13 @@ module Vedeu
|
|
16
16
|
#
|
17
17
|
# @return [Vedeu::Borders]
|
18
18
|
def reset!
|
19
|
-
@borders =
|
19
|
+
@borders = register(Vedeu::Border)
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
23
23
|
|
24
24
|
null Vedeu::Null::Border
|
25
|
+
# real Vedeu::Border
|
25
26
|
|
26
27
|
end # Borders
|
27
28
|
|
@@ -15,12 +15,13 @@ module Vedeu
|
|
15
15
|
#
|
16
16
|
# @return [Vedeu::Buffers]
|
17
17
|
def reset!
|
18
|
-
@buffers =
|
18
|
+
@buffers = register(Vedeu::Buffer)
|
19
19
|
end
|
20
20
|
|
21
21
|
end
|
22
22
|
|
23
23
|
null Vedeu::Null::Buffer
|
24
|
+
# real Vedeu::Buffer
|
24
25
|
|
25
26
|
end # Buffers
|
26
27
|
|
@@ -16,12 +16,13 @@ module Vedeu
|
|
16
16
|
#
|
17
17
|
# @return [Vedeu::Geometries]
|
18
18
|
def reset!
|
19
|
-
@geometries =
|
19
|
+
@geometries = register(Vedeu::Geometry)
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
23
23
|
|
24
24
|
null Vedeu::Null::Geometry
|
25
|
+
# real Vedeu::Geometry
|
25
26
|
|
26
27
|
end # Geometries
|
27
28
|
|
@@ -15,12 +15,13 @@ module Vedeu
|
|
15
15
|
#
|
16
16
|
# @return [Vedeu::InterfacesRepository]
|
17
17
|
def reset!
|
18
|
-
@interfaces =
|
18
|
+
@interfaces = register(Vedeu::Interface)
|
19
19
|
end
|
20
20
|
|
21
21
|
end
|
22
22
|
|
23
23
|
null Vedeu::Null::Interface
|
24
|
+
# real Vedeu::Interface
|
24
25
|
|
25
26
|
end # InterfacesRepository
|
26
27
|
|
@@ -22,15 +22,6 @@ module Vedeu
|
|
22
22
|
# @return [void]
|
23
23
|
attr_reader :storage
|
24
24
|
|
25
|
-
# @param model [Class]
|
26
|
-
# @param storage [Class|Hash]
|
27
|
-
# @return [Vedeu::Repository]
|
28
|
-
def self.register(model = nil, storage = {})
|
29
|
-
new(model, storage).tap do |klass|
|
30
|
-
Vedeu::Repositories.register(klass.repository)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
25
|
# Returns a new instance of Vedeu::Repository.
|
35
26
|
#
|
36
27
|
# @param model [Class]
|
@@ -45,7 +36,7 @@ module Vedeu
|
|
45
36
|
#
|
46
37
|
# @return [Class]
|
47
38
|
def repository
|
48
|
-
self.class
|
39
|
+
self.class
|
49
40
|
end
|
50
41
|
|
51
42
|
# @param name [String] The name of the stored model.
|
data/lib/vedeu/support/log.rb
CHANGED
@@ -94,7 +94,8 @@ module Vedeu
|
|
94
94
|
#
|
95
95
|
# @return [TrueClass]
|
96
96
|
def log(message:, force: false, type: :info)
|
97
|
-
logger.debug([message_type(type),
|
97
|
+
logger.debug([message_type(type),
|
98
|
+
message_body(type, message)]) if enabled? || force
|
98
99
|
end
|
99
100
|
|
100
101
|
# @return [TrueClass]
|
@@ -108,6 +109,8 @@ module Vedeu
|
|
108
109
|
|
109
110
|
private
|
110
111
|
|
112
|
+
# @param message [String]
|
113
|
+
# @param time [Time]
|
111
114
|
# @return [String]
|
112
115
|
def formatted_message(message, time = Time.now)
|
113
116
|
[timestamp(time.utc.iso8601), message, "\n"].join
|
@@ -123,9 +126,19 @@ module Vedeu
|
|
123
126
|
Vedeu::Configuration.log
|
124
127
|
end
|
125
128
|
|
129
|
+
# @param type [Symbol] The type of log message.
|
130
|
+
# @param body [String] The log message itself.
|
131
|
+
# @return [String]
|
132
|
+
def message_body(type, body)
|
133
|
+
Vedeu::Esc.send(message_types.fetch(type, :default).last) do
|
134
|
+
body
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
# @param type [Symbol] The type of log message.
|
126
139
|
# @return [String]
|
127
140
|
def message_type(type)
|
128
|
-
Vedeu::Esc.send(message_types.fetch(type, :default)) do
|
141
|
+
Vedeu::Esc.send(message_types.fetch(type, :default).first) do
|
129
142
|
"[#{type}]".ljust(9)
|
130
143
|
end
|
131
144
|
end
|
@@ -133,23 +146,24 @@ module Vedeu
|
|
133
146
|
# @return [Hash<Symbol => Symbol>]
|
134
147
|
def message_types
|
135
148
|
{
|
136
|
-
config: :yellow,
|
137
|
-
create: :green,
|
138
|
-
debug: :red,
|
139
|
-
drb: :blue,
|
140
|
-
event: :magenta,
|
141
|
-
info: :default,
|
142
|
-
input: :yellow,
|
143
|
-
output: :green,
|
144
|
-
store: :cyan,
|
145
|
-
test: :white,
|
146
|
-
update: :cyan,
|
149
|
+
config: [:light_yellow, :yellow],
|
150
|
+
create: [:light_green, :green],
|
151
|
+
debug: [:light_red, :red],
|
152
|
+
drb: [:light_blue, :blue],
|
153
|
+
event: [:light_magenta, :magenta],
|
154
|
+
info: [:white, :default],
|
155
|
+
input: [:light_yellow, :yellow],
|
156
|
+
output: [:light_green, :green],
|
157
|
+
store: [:light_cyan, :cyan],
|
158
|
+
test: [:light_white, :white],
|
159
|
+
update: [:light_cyan, :cyan],
|
147
160
|
}
|
148
161
|
end
|
149
162
|
|
150
163
|
# Returns a formatted (red, underlined) UTC timestamp,
|
151
164
|
# eg. 2014-10-24T12:34:56Z
|
152
165
|
#
|
166
|
+
# @param utc_time [String]
|
153
167
|
# @return [String]
|
154
168
|
def timestamp(utc_time)
|
155
169
|
return '' if @last_seen == utc_time
|
data/lib/vedeu/support/timer.rb
CHANGED
@@ -3,16 +3,19 @@ module Vedeu
|
|
3
3
|
# Measure the duration. Used for debugging.
|
4
4
|
class Timer
|
5
5
|
|
6
|
+
# @param type [Symbol]
|
6
7
|
# @param message [String]
|
7
8
|
# @param block [Proc]
|
8
9
|
# @return [void]
|
9
|
-
def self.for(message = '', &block)
|
10
|
-
new(message).measure(&block)
|
10
|
+
def self.for(type = :debug, message = '', &block)
|
11
|
+
new(type, message).measure(&block)
|
11
12
|
end
|
12
13
|
|
14
|
+
# @param type [Symbol]
|
13
15
|
# @param message [String]
|
14
16
|
# @return [Vedeu::Timer]
|
15
|
-
def initialize(message = '')
|
17
|
+
def initialize(type = :debug, message = '')
|
18
|
+
@type = type
|
16
19
|
@message = message
|
17
20
|
@started = Time.now.to_f
|
18
21
|
end
|
@@ -24,7 +27,7 @@ module Vedeu
|
|
24
27
|
|
25
28
|
elapsed = ((Time.now.to_f - started) * 1000).to_i
|
26
29
|
|
27
|
-
Vedeu.log(type:
|
30
|
+
Vedeu.log(type: type, message: "#{message} took #{elapsed}ms.")
|
28
31
|
|
29
32
|
work
|
30
33
|
end
|
@@ -39,6 +42,10 @@ module Vedeu
|
|
39
42
|
# @return [String]
|
40
43
|
attr_reader :message
|
41
44
|
|
45
|
+
# @!attribute [r] type
|
46
|
+
# @return [Symbol]
|
47
|
+
attr_reader :type
|
48
|
+
|
42
49
|
end # Timer
|
43
50
|
|
44
51
|
end # Vedeu
|
@@ -5,7 +5,8 @@ module Vedeu
|
|
5
5
|
describe Move do
|
6
6
|
|
7
7
|
let(:described) { Vedeu::Move }
|
8
|
-
let(:instance) { described.new(_name, dy, dx) }
|
8
|
+
let(:instance) { described.new(entity, _name, dy, dx) }
|
9
|
+
let(:entity) { Vedeu::Cursor }
|
9
10
|
let(:_name) { '' }
|
10
11
|
let(:dy) { 0 }
|
11
12
|
let(:dx) { 0 }
|
@@ -56,6 +57,7 @@ module Vedeu
|
|
56
57
|
|
57
58
|
describe '#initialize' do
|
58
59
|
it { instance.must_be_instance_of(described) }
|
60
|
+
it { instance.instance_variable_get('@entity').must_equal(entity) }
|
59
61
|
it { instance.instance_variable_get('@name').must_equal(_name) }
|
60
62
|
it { instance.instance_variable_get('@dy').must_equal(dy) }
|
61
63
|
it { instance.instance_variable_get('@dx').must_equal(dx) }
|
@@ -69,7 +71,7 @@ module Vedeu
|
|
69
71
|
Vedeu::Cursor.new(name: 'manganese', oy: 2, ox: 3, x: 8, y: 7).store
|
70
72
|
end
|
71
73
|
|
72
|
-
subject { described.by_name(direction, _name) }
|
74
|
+
subject { described.by_name(entity, direction, _name) }
|
73
75
|
|
74
76
|
it { subject.must_be_instance_of(Vedeu::Cursor) }
|
75
77
|
|
@@ -107,7 +109,7 @@ module Vedeu
|
|
107
109
|
describe '.down' do
|
108
110
|
let(:_name) { 'move_down' }
|
109
111
|
|
110
|
-
subject { described.down(_name) }
|
112
|
+
subject { described.down(entity, _name) }
|
111
113
|
|
112
114
|
it { subject.must_be_instance_of(Vedeu::Cursor) }
|
113
115
|
|
@@ -135,7 +137,7 @@ module Vedeu
|
|
135
137
|
describe '.left' do
|
136
138
|
let(:_name) { 'move_left' }
|
137
139
|
|
138
|
-
subject { described.left(_name) }
|
140
|
+
subject { described.left(entity, _name) }
|
139
141
|
|
140
142
|
it { subject.must_be_instance_of(Vedeu::Cursor) }
|
141
143
|
|
@@ -161,7 +163,7 @@ module Vedeu
|
|
161
163
|
describe '.right' do
|
162
164
|
let(:_name) { 'move_right' }
|
163
165
|
|
164
|
-
subject { described.right(_name) }
|
166
|
+
subject { described.right(entity, _name) }
|
165
167
|
|
166
168
|
it { subject.must_be_instance_of(Vedeu::Cursor) }
|
167
169
|
|
@@ -189,7 +191,7 @@ module Vedeu
|
|
189
191
|
describe '.up' do
|
190
192
|
let(:_name) { 'move_up' }
|
191
193
|
|
192
|
-
subject { described.up(_name) }
|
194
|
+
subject { described.up(entity, _name) }
|
193
195
|
|
194
196
|
it { subject.must_be_instance_of(Vedeu::Cursor) }
|
195
197
|
|
@@ -215,7 +217,7 @@ module Vedeu
|
|
215
217
|
describe '#origin' do
|
216
218
|
let(:_name) { 'move_origin' }
|
217
219
|
|
218
|
-
subject { described.origin(_name) }
|
220
|
+
subject { described.origin(entity, _name) }
|
219
221
|
|
220
222
|
it { subject.must_be_instance_of(Vedeu::Cursor) }
|
221
223
|
|
@@ -5,18 +5,34 @@ module Vedeu
|
|
5
5
|
describe Coordinate do
|
6
6
|
|
7
7
|
let(:described) { Vedeu::Coordinate }
|
8
|
-
let(:instance) { described.new(
|
8
|
+
let(:instance) { described.new(_name) }
|
9
|
+
let(:_name) { 'coordinate' }
|
9
10
|
let(:height) { 6 }
|
10
11
|
let(:width) { 6 }
|
11
12
|
let(:x) { 7 }
|
12
13
|
let(:y) { 5 }
|
13
14
|
|
15
|
+
let(:borders) { mock('Vedeu::Borders') }
|
16
|
+
let(:border) {
|
17
|
+
Vedeu::Border.new({
|
18
|
+
name: _name,
|
19
|
+
enabled: true
|
20
|
+
})
|
21
|
+
}
|
22
|
+
|
23
|
+
before do
|
24
|
+
Vedeu::Geometry.new({name: _name,
|
25
|
+
height: height,
|
26
|
+
width: width,
|
27
|
+
x: x,
|
28
|
+
y: y}).store
|
29
|
+
Vedeu.stubs(:borders).returns(borders)
|
30
|
+
borders.stubs(:by_name).returns(border)
|
31
|
+
end
|
32
|
+
|
14
33
|
describe '#initialize' do
|
15
34
|
it { instance.must_be_instance_of(described) }
|
16
|
-
it { instance.instance_variable_get('@
|
17
|
-
it { instance.instance_variable_get('@width').must_equal(width) }
|
18
|
-
it { instance.instance_variable_get('@x').must_equal(x) }
|
19
|
-
it { instance.instance_variable_get('@y').must_equal(y) }
|
35
|
+
it { instance.instance_variable_get('@name').must_equal(_name) }
|
20
36
|
end
|
21
37
|
|
22
38
|
describe '#yn' do
|
@@ -29,7 +45,7 @@ module Vedeu
|
|
29
45
|
end
|
30
46
|
|
31
47
|
context 'when the height is > 0' do
|
32
|
-
it { subject.must_equal(
|
48
|
+
it { subject.must_equal(9) }
|
33
49
|
end
|
34
50
|
end
|
35
51
|
|
@@ -43,16 +59,12 @@ module Vedeu
|
|
43
59
|
end
|
44
60
|
|
45
61
|
context 'when the width is > 0' do
|
46
|
-
it { subject.must_equal(
|
62
|
+
it { subject.must_equal(11) }
|
47
63
|
end
|
48
64
|
end
|
49
65
|
|
50
66
|
describe '#y_position' do
|
51
67
|
let(:index) { 0 }
|
52
|
-
let(:height) { 6 }
|
53
|
-
let(:width) { 6 }
|
54
|
-
let(:x) { 7 }
|
55
|
-
let(:y) { 5 }
|
56
68
|
|
57
69
|
subject { instance.y_position(index) }
|
58
70
|
|
@@ -61,18 +73,18 @@ module Vedeu
|
|
61
73
|
context 'with a negative index' do
|
62
74
|
let(:index) { -3 }
|
63
75
|
|
64
|
-
it { subject.must_equal(
|
76
|
+
it { subject.must_equal(6) }
|
65
77
|
end
|
66
78
|
|
67
79
|
context 'with an index greater than the maximum index for y' do
|
68
80
|
let(:index) { 9 }
|
69
81
|
|
70
|
-
it { subject.must_equal(
|
82
|
+
it { subject.must_equal(9) }
|
71
83
|
|
72
84
|
context 'but the height is negative' do
|
73
85
|
let(:height) { -2 }
|
74
86
|
|
75
|
-
it { subject.must_equal(
|
87
|
+
it { subject.must_equal(1) }
|
76
88
|
end
|
77
89
|
end
|
78
90
|
|
@@ -85,10 +97,6 @@ module Vedeu
|
|
85
97
|
|
86
98
|
describe '#x_position' do
|
87
99
|
let(:index) { 0 }
|
88
|
-
let(:height) { 6 }
|
89
|
-
let(:width) { 6 }
|
90
|
-
let(:x) { 7 }
|
91
|
-
let(:y) { 5 }
|
92
100
|
|
93
101
|
subject { instance.x_position(index) }
|
94
102
|
|
@@ -97,18 +105,18 @@ module Vedeu
|
|
97
105
|
context 'with a negative index' do
|
98
106
|
let(:index) { -3 }
|
99
107
|
|
100
|
-
it { subject.must_equal(
|
108
|
+
it { subject.must_equal(8) }
|
101
109
|
end
|
102
110
|
|
103
111
|
context 'with an index greater than the maximum index for x' do
|
104
112
|
let(:index) { 9 }
|
105
113
|
|
106
|
-
it { subject.must_equal(
|
114
|
+
it { subject.must_equal(11) }
|
107
115
|
|
108
116
|
context 'but the width is negative' do
|
109
117
|
let(:width) { -2 }
|
110
118
|
|
111
|
-
it { subject.must_equal(
|
119
|
+
it { subject.must_equal(3) }
|
112
120
|
end
|
113
121
|
end
|
114
122
|
|
@@ -20,7 +20,7 @@ module Vedeu
|
|
20
20
|
yn: yn,
|
21
21
|
}
|
22
22
|
}
|
23
|
-
let(:centred) {}
|
23
|
+
let(:centred) { false }
|
24
24
|
let(:height) {}
|
25
25
|
let(:maximised) { false }
|
26
26
|
let(:_name) {}
|
@@ -56,7 +56,10 @@ module Vedeu
|
|
56
56
|
|
57
57
|
it { subject.must_be_instance_of(String) }
|
58
58
|
|
59
|
-
it { subject.must_equal(
|
59
|
+
it { subject.must_equal(
|
60
|
+
'<Vedeu::Geometry x:1 xn:40 y:1 yn:12 centred:false maximise:false>'
|
61
|
+
)
|
62
|
+
}
|
60
63
|
end
|
61
64
|
|
62
65
|
describe '#maximise' do
|
@@ -93,6 +96,15 @@ module Vedeu
|
|
93
96
|
it { subject.maximised.must_equal(false) }
|
94
97
|
end
|
95
98
|
|
99
|
+
describe '#move' do
|
100
|
+
let(:dy) {}
|
101
|
+
let(:dx) {}
|
102
|
+
|
103
|
+
subject { instance.move(dy, dx) }
|
104
|
+
|
105
|
+
|
106
|
+
end
|
107
|
+
|
96
108
|
describe '#top, #right, #bottom, #left' do
|
97
109
|
context 'maximised is true' do
|
98
110
|
let(:attributes) { { maximised: true } }
|