vedeu 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/borders_app.rb +60 -56
- data/lib/vedeu/buffers/all.rb +1 -0
- data/lib/vedeu/configuration/configuration.rb +2 -4
- data/lib/vedeu/cursor/all.rb +3 -6
- data/lib/vedeu/cursor/cursor.rb +4 -3
- data/lib/vedeu/cursor/move_cursor.rb +7 -4
- data/lib/vedeu/cursor/toggle_cursor.rb +0 -1
- data/lib/vedeu/dsl/components/border.rb +99 -0
- data/lib/vedeu/dsl/components/geometry.rb +1 -0
- data/lib/vedeu/dsl/components/keymap.rb +1 -1
- data/lib/vedeu/dsl/composition.rb +7 -12
- data/lib/vedeu/dsl/interface.rb +7 -8
- data/lib/vedeu/dsl/line.rb +1 -10
- data/lib/vedeu/dsl/stream.rb +0 -2
- data/lib/vedeu/input/key.rb +10 -6
- data/lib/vedeu/input/keymap.rb +10 -8
- data/lib/vedeu/models/menu.rb +0 -2
- data/lib/vedeu/models/model.rb +20 -0
- data/lib/vedeu/models/view/composition.rb +4 -17
- data/lib/vedeu/models/view/interface.rb +9 -21
- data/lib/vedeu/models/view/line.rb +4 -17
- data/lib/vedeu/models/view/stream.rb +4 -17
- data/lib/vedeu/output/all.rb +1 -0
- data/lib/vedeu/output/border.rb +2 -2
- data/lib/vedeu/output/compositor.rb +0 -4
- data/lib/vedeu/output/wordwrap.rb +146 -0
- data/lib/vedeu/repositories/repository.rb +3 -2
- data/lib/vedeu/support/console.rb +29 -6
- data/lib/vedeu/support/content_geometry.rb +2 -0
- data/lib/vedeu/support/coordinate.rb +9 -4
- data/lib/vedeu/support/position_validator.rb +28 -7
- data/lib/vedeu/support/sentence.rb +21 -1
- data/lib/vedeu/support/terminal.rb +0 -2
- data/lib/vedeu/support/trace.rb +48 -2
- data/lib/vedeu/support/visible.rb +2 -0
- data/test/lib/vedeu/cursor/all_test.rb +1 -1
- data/test/lib/vedeu/events/event_test.rb +7 -29
- data/test/lib/vedeu/input/key_test.rb +3 -3
- data/test/lib/vedeu/input/keymap_test.rb +3 -3
- data/test/lib/vedeu/output/wordwrap_test.rb +266 -0
- data/test/lib/vedeu/presentation/colour_test.rb +68 -33
- data/test/lib/vedeu/support/common_test.rb +10 -0
- data/test/lib/vedeu/support/console_test.rb +82 -0
- data/test/lib/vedeu/support/position_validator_test.rb +13 -0
- data/test/support/helpers/all.rb +0 -1
- data/vedeu.gemspec +8 -8
- metadata +19 -18
- data/test/support/helpers/misc.rb +0 -15
@@ -4,7 +4,8 @@ module Vedeu
|
|
4
4
|
|
5
5
|
describe Colour do
|
6
6
|
|
7
|
-
let(:described) { Colour
|
7
|
+
let(:described) { Vedeu::Colour }
|
8
|
+
let(:instance) { described.new(attributes) }
|
8
9
|
let(:attributes) {
|
9
10
|
{
|
10
11
|
background: '',
|
@@ -13,62 +14,96 @@ module Vedeu
|
|
13
14
|
}
|
14
15
|
|
15
16
|
describe '#initialize' do
|
16
|
-
|
17
|
-
|
17
|
+
subject { instance }
|
18
|
+
|
19
|
+
it { instance.must_be_instance_of(described) }
|
20
|
+
it { instance.instance_variable_get('@attributes').must_equal(attributes) }
|
18
21
|
end
|
19
22
|
|
20
23
|
describe '#background' do
|
21
|
-
|
24
|
+
subject { instance.background }
|
25
|
+
|
26
|
+
it { subject.must_be_instance_of(String) }
|
27
|
+
|
28
|
+
context 'with a background' do
|
29
|
+
let(:attributes) {
|
30
|
+
{
|
31
|
+
background: '#000000'
|
32
|
+
}
|
33
|
+
}
|
22
34
|
|
23
|
-
|
24
|
-
Colour.new({
|
25
|
-
background: '#000000'
|
26
|
-
}).background.must_equal("\e[48;2;0;0;0m")
|
35
|
+
it { subject.must_equal("\e[48;2;0;0;0m") }
|
27
36
|
end
|
28
37
|
|
29
|
-
|
30
|
-
|
38
|
+
context 'without a background' do
|
39
|
+
let(:attributes) { {} }
|
40
|
+
|
41
|
+
it { subject.must_equal('') }
|
31
42
|
end
|
32
43
|
end
|
33
44
|
|
34
45
|
describe '#foreground' do
|
35
|
-
|
46
|
+
subject { instance.foreground }
|
47
|
+
|
48
|
+
it { subject.must_be_instance_of(String) }
|
49
|
+
|
50
|
+
context 'with a foreground' do
|
51
|
+
let(:attributes) {
|
52
|
+
{
|
53
|
+
foreground: '#ff0000'
|
54
|
+
}
|
55
|
+
}
|
36
56
|
|
37
|
-
|
38
|
-
Colour.new({
|
39
|
-
foreground: '#ff0000'
|
40
|
-
}).foreground.must_equal("\e[38;2;255;0;0m")
|
57
|
+
it { subject.must_equal("\e[38;2;255;0;0m") }
|
41
58
|
end
|
42
59
|
|
43
|
-
|
44
|
-
|
60
|
+
context 'without a foreground' do
|
61
|
+
let(:attributes) { {} }
|
62
|
+
|
63
|
+
it { subject.must_equal('') }
|
45
64
|
end
|
46
65
|
end
|
47
66
|
|
48
67
|
describe '#to_s' do
|
49
|
-
|
68
|
+
subject { instance.to_s }
|
69
|
+
|
70
|
+
it { subject.must_be_instance_of(String) }
|
71
|
+
|
72
|
+
context 'with both background and foreground' do
|
73
|
+
let(:attributes) {
|
74
|
+
{
|
75
|
+
foreground: '#ff0000',
|
76
|
+
background: '#000000'
|
77
|
+
}
|
78
|
+
}
|
50
79
|
|
51
|
-
|
52
|
-
Colour.new({
|
53
|
-
foreground: '#ff0000',
|
54
|
-
background: '#000000'
|
55
|
-
}).to_s.must_equal("\e[38;2;255;0;0m\e[48;2;0;0;0m")
|
80
|
+
it { subject.must_equal("\e[38;2;255;0;0m\e[48;2;0;0;0m") }
|
56
81
|
end
|
57
82
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
83
|
+
context 'when the foreground is missing' do
|
84
|
+
let(:attributes) {
|
85
|
+
{
|
86
|
+
background: '#000000'
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
it { subject.must_equal("\e[48;2;0;0;0m") }
|
62
91
|
end
|
63
92
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
93
|
+
context 'when the background is missing' do
|
94
|
+
let(:attributes) {
|
95
|
+
{
|
96
|
+
foreground: '#ff0000',
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
it { subject.must_equal("\e[38;2;255;0;0m") }
|
68
101
|
end
|
69
102
|
|
70
|
-
|
71
|
-
|
103
|
+
context 'when both are missing' do
|
104
|
+
let(:attributes) { {} }
|
105
|
+
|
106
|
+
it { subject.must_equal('') }
|
72
107
|
end
|
73
108
|
end
|
74
109
|
|
@@ -2,6 +2,16 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Vedeu
|
4
4
|
|
5
|
+
class VedeuCommonClass
|
6
|
+
|
7
|
+
include Vedeu::Common
|
8
|
+
|
9
|
+
def defined_value_test(variable)
|
10
|
+
defined_value?(variable)
|
11
|
+
end
|
12
|
+
|
13
|
+
end # VedeuCommonClass
|
14
|
+
|
5
15
|
describe Common do
|
6
16
|
|
7
17
|
let(:described) { Vedeu::VedeuCommonClass.new }
|
@@ -66,11 +66,69 @@ module Vedeu
|
|
66
66
|
it { subject.must_equal(16) }
|
67
67
|
end
|
68
68
|
|
69
|
+
describe '#cooked' do
|
70
|
+
subject { instance.cooked }
|
71
|
+
|
72
|
+
context 'when the block is not given' do
|
73
|
+
it { proc { subject }.must_raise(LocalJumpError) }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe '#height' do
|
78
|
+
subject { instance.height }
|
79
|
+
|
80
|
+
it { subject.must_be_instance_of(Fixnum) }
|
81
|
+
|
82
|
+
context 'alias method #tyn' do
|
83
|
+
subject { instance.tyn }
|
84
|
+
|
85
|
+
it { subject.must_be_instance_of(Fixnum) }
|
86
|
+
end
|
87
|
+
|
88
|
+
context 'alias method #yn' do
|
89
|
+
subject { instance.yn }
|
90
|
+
|
91
|
+
it { subject.must_be_instance_of(Fixnum) }
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
69
95
|
describe '#origin' do
|
70
96
|
subject { instance.origin }
|
71
97
|
|
72
98
|
it { subject.must_be_instance_of(Fixnum) }
|
73
99
|
it { subject.must_equal(1) }
|
100
|
+
|
101
|
+
context 'alias method #x' do
|
102
|
+
subject { instance.x }
|
103
|
+
|
104
|
+
it { subject.must_be_instance_of(Fixnum) }
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'alias method #y' do
|
108
|
+
subject { instance.y }
|
109
|
+
|
110
|
+
it { subject.must_be_instance_of(Fixnum) }
|
111
|
+
end
|
112
|
+
|
113
|
+
context 'alias method #tx' do
|
114
|
+
subject { instance.tx }
|
115
|
+
|
116
|
+
it { subject.must_be_instance_of(Fixnum) }
|
117
|
+
end
|
118
|
+
|
119
|
+
context 'alias method #ty' do
|
120
|
+
subject { instance.ty }
|
121
|
+
|
122
|
+
it { subject.must_be_instance_of(Fixnum) }
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe '#raw' do
|
127
|
+
subject { instance.raw }
|
128
|
+
|
129
|
+
context 'when the block is not given' do
|
130
|
+
it { proc { subject }.must_raise(LocalJumpError) }
|
131
|
+
end
|
74
132
|
end
|
75
133
|
|
76
134
|
describe '#size' do
|
@@ -78,6 +136,30 @@ module Vedeu
|
|
78
136
|
|
79
137
|
it { subject.must_be_instance_of(Array) }
|
80
138
|
it { subject.must_equal([24, 32]) }
|
139
|
+
|
140
|
+
context 'alias method #winsize' do
|
141
|
+
subject { instance.winsize }
|
142
|
+
|
143
|
+
it { subject.must_be_instance_of(Array) }
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
describe '#width' do
|
148
|
+
subject { instance.width }
|
149
|
+
|
150
|
+
it { subject.must_be_instance_of(Fixnum) }
|
151
|
+
|
152
|
+
context 'alias method #txn' do
|
153
|
+
subject { instance.txn }
|
154
|
+
|
155
|
+
it { subject.must_be_instance_of(Fixnum) }
|
156
|
+
end
|
157
|
+
|
158
|
+
context 'alias method #xn' do
|
159
|
+
subject { instance.xn }
|
160
|
+
|
161
|
+
it { subject.must_be_instance_of(Fixnum) }
|
162
|
+
end
|
81
163
|
end
|
82
164
|
|
83
165
|
end # Console
|
@@ -4,7 +4,20 @@ module Vedeu
|
|
4
4
|
|
5
5
|
describe PositionValidator do
|
6
6
|
|
7
|
+
let(:described) { Vedeu::PositionValidator }
|
8
|
+
let(:instance) { described.new(interface, x, y) }
|
9
|
+
let(:interface) {}
|
10
|
+
let(:x) {}
|
11
|
+
let(:y) {}
|
7
12
|
|
13
|
+
describe '#initialize' do
|
14
|
+
subject { instance }
|
15
|
+
|
16
|
+
it { subject.must_be_instance_of(described) }
|
17
|
+
it { subject.instance_variable_get('@interface').must_equal(interface) }
|
18
|
+
it { subject.instance_variable_get('@x').must_equal(x) }
|
19
|
+
it { subject.instance_variable_get('@y').must_equal(y) }
|
20
|
+
end
|
8
21
|
|
9
22
|
end # PositionValidator
|
10
23
|
|
data/test/support/helpers/all.rb
CHANGED
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.3.
|
7
|
+
spec.version = '0.3.1'
|
8
8
|
spec.authors = ['Gavin Laking']
|
9
9
|
spec.email = ['gavinlaking@gmail.com']
|
10
10
|
spec.summary = %q{A terminal case of wonderland.}
|
@@ -18,19 +18,19 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
20
|
spec.add_development_dependency 'aruba', '0.6.2'
|
21
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
22
|
-
spec.add_development_dependency 'cucumber', '1.3.
|
23
|
-
spec.add_development_dependency 'guard', '2.
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
22
|
+
spec.add_development_dependency 'cucumber', '1.3.19'
|
23
|
+
spec.add_development_dependency 'guard', '2.12.1'
|
24
24
|
spec.add_development_dependency 'guard-bundler', '2.1.0'
|
25
25
|
spec.add_development_dependency 'guard-cucumber', '1.5.3'
|
26
|
-
spec.add_development_dependency 'guard-minitest', '2.4.
|
26
|
+
spec.add_development_dependency 'guard-minitest', '2.4.3'
|
27
27
|
spec.add_development_dependency 'guard-yard', '2.1.4'
|
28
28
|
spec.add_development_dependency 'minitest', '5.5.1'
|
29
|
-
spec.add_development_dependency 'minitest-reporters', '1.0.
|
29
|
+
spec.add_development_dependency 'minitest-reporters', '1.0.10'
|
30
30
|
spec.add_development_dependency 'mocha', '1.1.0'
|
31
31
|
spec.add_development_dependency 'pry', '0.10.1'
|
32
|
-
spec.add_development_dependency 'pry-byebug', '
|
33
|
-
spec.add_development_dependency 'rake', '10.
|
32
|
+
spec.add_development_dependency 'pry-byebug', '3.0.1'
|
33
|
+
spec.add_development_dependency 'rake', '10.4.2'
|
34
34
|
spec.add_development_dependency 'simplecov', '0.9.1'
|
35
35
|
spec.add_development_dependency 'yard', '0.8.7.6'
|
36
36
|
end
|
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.3.
|
4
|
+
version: 0.3.1
|
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-02-
|
11
|
+
date: 2015-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aruba
|
@@ -30,42 +30,42 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.7'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: cucumber
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.3.
|
47
|
+
version: 1.3.19
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.3.
|
54
|
+
version: 1.3.19
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: guard
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: 2.12.1
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.
|
68
|
+
version: 2.12.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 2.4.
|
103
|
+
version: 2.4.3
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.4.
|
110
|
+
version: 2.4.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: guard-yard
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - '='
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.0.
|
145
|
+
version: 1.0.10
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.0.
|
152
|
+
version: 1.0.10
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: mocha
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,28 +184,28 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - '='
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
187
|
+
version: 3.0.1
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - '='
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
194
|
+
version: 3.0.1
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: rake
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
199
|
- - '='
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 10.
|
201
|
+
version: 10.4.2
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - '='
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 10.
|
208
|
+
version: 10.4.2
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: simplecov
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -335,6 +335,7 @@ files:
|
|
335
335
|
- lib/vedeu/output/compositor.rb
|
336
336
|
- lib/vedeu/output/output.rb
|
337
337
|
- lib/vedeu/output/viewport.rb
|
338
|
+
- lib/vedeu/output/wordwrap.rb
|
338
339
|
- lib/vedeu/output/writer.rb
|
339
340
|
- lib/vedeu/presentation/all.rb
|
340
341
|
- lib/vedeu/presentation/background.rb
|
@@ -430,6 +431,7 @@ files:
|
|
430
431
|
- test/lib/vedeu/output/compositor_test.rb
|
431
432
|
- test/lib/vedeu/output/output_test.rb
|
432
433
|
- test/lib/vedeu/output/viewport_test.rb
|
434
|
+
- test/lib/vedeu/output/wordwrap_test.rb
|
433
435
|
- test/lib/vedeu/output/writer_test.rb
|
434
436
|
- test/lib/vedeu/presentation/background_test.rb
|
435
437
|
- test/lib/vedeu/presentation/colour_test.rb
|
@@ -465,7 +467,6 @@ files:
|
|
465
467
|
- test/support/helpers/all.rb
|
466
468
|
- test/support/helpers/dsl_model_test_class.rb
|
467
469
|
- test/support/helpers/helpers.rb
|
468
|
-
- test/support/helpers/misc.rb
|
469
470
|
- test/support/helpers/model_test_class.rb
|
470
471
|
- test/support/helpers/presentation.rb
|
471
472
|
- test/support/helpers/repositories.rb
|
@@ -561,6 +562,7 @@ test_files:
|
|
561
562
|
- test/lib/vedeu/output/compositor_test.rb
|
562
563
|
- test/lib/vedeu/output/output_test.rb
|
563
564
|
- test/lib/vedeu/output/viewport_test.rb
|
565
|
+
- test/lib/vedeu/output/wordwrap_test.rb
|
564
566
|
- test/lib/vedeu/output/writer_test.rb
|
565
567
|
- test/lib/vedeu/presentation/background_test.rb
|
566
568
|
- test/lib/vedeu/presentation/colour_test.rb
|
@@ -596,7 +598,6 @@ test_files:
|
|
596
598
|
- test/support/helpers/all.rb
|
597
599
|
- test/support/helpers/dsl_model_test_class.rb
|
598
600
|
- test/support/helpers/helpers.rb
|
599
|
-
- test/support/helpers/misc.rb
|
600
601
|
- test/support/helpers/model_test_class.rb
|
601
602
|
- test/support/helpers/presentation.rb
|
602
603
|
- test/support/helpers/repositories.rb
|