vedeu 0.4.9 → 0.4.10
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 +8 -0
- data/lib/vedeu/application.rb +2 -0
- data/lib/vedeu/bindings.rb +3 -0
- data/lib/vedeu/configuration/configuration.rb +1 -1
- data/lib/vedeu/cursor/cursor.rb +1 -1
- data/lib/vedeu/cursor/move.rb +1 -1
- data/lib/vedeu/cursor/refresh_cursor.rb +2 -0
- data/lib/vedeu/cursor/toggle.rb +1 -1
- data/lib/vedeu/debug.rb +36 -1
- data/lib/vedeu/distributed/client.rb +2 -0
- data/lib/vedeu/distributed/subprocess.rb +2 -0
- data/lib/vedeu/distributed/test_application.rb +2 -0
- data/lib/vedeu/distributed/uri.rb +2 -0
- data/lib/vedeu/events/event.rb +1 -1
- data/lib/vedeu/events/trigger.rb +2 -0
- data/lib/vedeu/geometry/all.rb +0 -1
- data/lib/vedeu/geometry/area.rb +22 -0
- data/lib/vedeu/geometry/centre.rb +2 -0
- data/lib/vedeu/geometry/content.rb +2 -0
- data/lib/vedeu/geometry/coordinate.rb +2 -0
- data/lib/vedeu/geometry/dimension.rb +2 -0
- data/lib/vedeu/geometry/geometry.rb +8 -3
- data/lib/vedeu/geometry/grid.rb +2 -0
- data/lib/vedeu/geometry/index_position.rb +21 -0
- data/lib/vedeu/geometry/limit.rb +2 -0
- data/lib/vedeu/geometry/position.rb +1 -1
- data/lib/vedeu/geometry/position_index.rb +2 -0
- data/lib/vedeu/geometry/position_validator.rb +2 -0
- data/lib/vedeu/input/input.rb +1 -1
- data/lib/vedeu/input/key.rb +1 -1
- data/lib/vedeu/input/keymap.rb +2 -0
- data/lib/vedeu/input/mapper.rb +8 -0
- data/lib/vedeu/launcher.rb +2 -0
- data/lib/vedeu/main_loop.rb +1 -3
- data/lib/vedeu/models/cell.rb +2 -0
- data/lib/vedeu/models/composition.rb +1 -1
- data/lib/vedeu/models/group.rb +1 -1
- data/lib/vedeu/models/interface.rb +35 -3
- data/lib/vedeu/models/line.rb +6 -1
- data/lib/vedeu/models/menu.rb +1 -1
- data/lib/vedeu/models/stream.rb +6 -17
- data/lib/vedeu/output/all.rb +3 -2
- data/lib/vedeu/output/background.rb +26 -0
- data/lib/vedeu/output/border.rb +105 -25
- data/lib/vedeu/output/clear.rb +17 -10
- data/lib/vedeu/output/colour.rb +1 -1
- data/lib/vedeu/output/compositor.rb +4 -1
- data/lib/vedeu/output/foreground.rb +26 -0
- data/lib/vedeu/output/html_char.rb +2 -0
- data/lib/vedeu/output/null_border.rb +49 -0
- data/lib/vedeu/output/output.rb +8 -44
- data/lib/vedeu/output/renderers/all.rb +3 -0
- data/lib/vedeu/output/{renderer.rb → renderers/file_renderer.rb} +14 -6
- data/lib/vedeu/output/{html_renderer.rb → renderers/html_renderer.rb} +3 -1
- data/lib/vedeu/output/renderers/terminal_renderer.rb +50 -0
- data/lib/vedeu/output/text.rb +1 -1
- data/lib/vedeu/output/translator.rb +21 -2
- data/lib/vedeu/output/viewport.rb +17 -50
- data/lib/vedeu/output/virtual_terminal.rb +2 -0
- data/lib/vedeu/output/wordwrap.rb +2 -0
- data/lib/vedeu/repositories/all.rb +82 -0
- data/lib/vedeu/repositories/collection.rb +16 -0
- data/lib/vedeu/repositories/repository.rb +2 -0
- data/lib/vedeu/support/log.rb +3 -0
- data/lib/vedeu/support/sentence.rb +2 -0
- data/lib/vedeu/support/template.rb +2 -0
- data/lib/vedeu/support/terminal.rb +6 -1
- data/lib/vedeu/support/trace.rb +2 -0
- data/lib/vedeu/support/visible.rb +6 -0
- data/test/lib/vedeu/dsl/components/border_test.rb +0 -270
- data/test/lib/vedeu/dsl/shared/text_test.rb +19 -0
- data/test/lib/vedeu/geometry/area_test.rb +32 -0
- data/test/lib/vedeu/geometry/index_position_test.rb +36 -0
- data/test/lib/vedeu/models/interface_test.rb +42 -1
- data/test/lib/vedeu/models/line_test.rb +15 -1
- data/test/lib/vedeu/models/stream_test.rb +15 -1
- data/test/lib/vedeu/output/background_test.rb +4 -2
- data/test/lib/vedeu/output/border_test.rb +229 -127
- data/test/lib/vedeu/output/clear_test.rb +14 -0
- data/test/lib/vedeu/output/foreground_test.rb +4 -2
- data/test/lib/vedeu/output/null_border_test.rb +53 -0
- data/test/lib/vedeu/output/output_test.rb +2 -0
- data/test/lib/vedeu/output/{renderer_test.rb → renderers/file_renderer_test.rb} +5 -5
- data/test/lib/vedeu/output/renderers/html_renderer_test.rb +71 -0
- data/test/lib/vedeu/output/renderers/terminal_renderer_test.rb +24 -0
- data/test/lib/vedeu/output/viewport_test.rb +100 -74
- data/vedeu.gemspec +1 -1
- metadata +15 -11
- data/lib/vedeu/geometry/bounding_area.rb +0 -136
- data/test/lib/vedeu/geometry/bounding_area_test.rb +0 -123
- data/test/lib/vedeu/output/html_renderer_test.rb +0 -42
@@ -28,6 +28,88 @@ module Vedeu
|
|
28
28
|
|
29
29
|
end # Buffers
|
30
30
|
|
31
|
+
# Allows the storing of HTML/CSS colours and their respective escape
|
32
|
+
# sequences.
|
33
|
+
#
|
34
|
+
class Colours
|
35
|
+
|
36
|
+
# @!attribute [r] storage
|
37
|
+
# @return [Hash<String => String>]
|
38
|
+
attr_reader :storage
|
39
|
+
|
40
|
+
# Returns a new instance of Vedeu::Colours.
|
41
|
+
#
|
42
|
+
# @return [Vedeu::Colours]
|
43
|
+
def initialize
|
44
|
+
@storage = {}
|
45
|
+
end
|
46
|
+
|
47
|
+
# Registers a colour with respective escape sequence.
|
48
|
+
#
|
49
|
+
# @return [String]
|
50
|
+
def register(colour, escape_sequence)
|
51
|
+
storage.store(colour, escape_sequence)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Returns a boolean indicating whether the colour has been registered.
|
55
|
+
#
|
56
|
+
# @return [Boolean]
|
57
|
+
def registered?(colour)
|
58
|
+
storage.key?(colour)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Removes all stored colours.
|
62
|
+
#
|
63
|
+
# @return [Hash]
|
64
|
+
def reset!
|
65
|
+
storage.clear
|
66
|
+
end
|
67
|
+
|
68
|
+
# Retrieves a registered colour.
|
69
|
+
#
|
70
|
+
# @return [String]
|
71
|
+
def retrieve(colour)
|
72
|
+
storage.fetch(colour, '')
|
73
|
+
end
|
74
|
+
|
75
|
+
# Retrieves a registered colour, or registers the colour with its respective
|
76
|
+
# escape sequence.
|
77
|
+
#
|
78
|
+
# @return [String]
|
79
|
+
def retrieve_or_register(colour, escape_sequence)
|
80
|
+
if registered?(colour)
|
81
|
+
retrieve(colour)
|
82
|
+
|
83
|
+
else
|
84
|
+
register(colour, escape_sequence)
|
85
|
+
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
end # Colours
|
90
|
+
|
91
|
+
# Store background colour escape sequences by HTML/CSS code.
|
92
|
+
#
|
93
|
+
class BackgroundColours < Colours
|
94
|
+
|
95
|
+
# @return [Vedeu::BackgroundColours]
|
96
|
+
def self.background_colours
|
97
|
+
@background_colours ||= new
|
98
|
+
end
|
99
|
+
|
100
|
+
end # BackgroundColours
|
101
|
+
|
102
|
+
# Store foreground colour escape sequences by HTML/CSS code.
|
103
|
+
#
|
104
|
+
class ForegroundColours < Colours
|
105
|
+
|
106
|
+
# @return [Vedeu::ForegroundColours]
|
107
|
+
def self.foreground_colours
|
108
|
+
@foreground_colours ||= new
|
109
|
+
end
|
110
|
+
|
111
|
+
end # ForegroundColours
|
112
|
+
|
31
113
|
# Allows the storing of each interface's cursor.
|
32
114
|
#
|
33
115
|
class Cursors < Repository
|
@@ -29,6 +29,8 @@ module Vedeu
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
# Returns a new instance of Vedeu::Collection.
|
33
|
+
#
|
32
34
|
# @param collection []
|
33
35
|
# @param parent [void]
|
34
36
|
# @param name [String|NilClass]
|
@@ -39,12 +41,16 @@ module Vedeu
|
|
39
41
|
@name = name
|
40
42
|
end
|
41
43
|
|
44
|
+
# Fetch an entry from the collection via index.
|
45
|
+
#
|
42
46
|
# @param value [Fixnum]
|
43
47
|
# @return [void]
|
44
48
|
def [](value)
|
45
49
|
@collection[value]
|
46
50
|
end
|
47
51
|
|
52
|
+
# Adds an entry to the collection.
|
53
|
+
#
|
48
54
|
# @param other [Vedeu::Collection]
|
49
55
|
# @return [Vedeu::Collection]
|
50
56
|
def add(*other)
|
@@ -52,27 +58,37 @@ module Vedeu
|
|
52
58
|
end
|
53
59
|
alias_method :<<, :add
|
54
60
|
|
61
|
+
# Returns the whole collection.
|
62
|
+
#
|
55
63
|
# @return [Array]
|
56
64
|
def all
|
57
65
|
@collection
|
58
66
|
end
|
59
67
|
|
68
|
+
# Provides iteration over the collection.
|
69
|
+
#
|
60
70
|
# @param block [Proc]
|
61
71
|
# @return [Enumerator]
|
62
72
|
def each(&block)
|
63
73
|
@collection.each(&block)
|
64
74
|
end
|
65
75
|
|
76
|
+
# Returns a boolean indicating whether the collection is empty.
|
77
|
+
#
|
66
78
|
# @return [Boolean]
|
67
79
|
def empty?
|
68
80
|
@collection.empty?
|
69
81
|
end
|
70
82
|
|
83
|
+
# Returns the size of the collection.
|
84
|
+
#
|
71
85
|
# @return [Fixnum]
|
72
86
|
def size
|
73
87
|
@collection.size
|
74
88
|
end
|
75
89
|
|
90
|
+
# Returns the collection as a String.
|
91
|
+
#
|
76
92
|
# @return [String]
|
77
93
|
def to_s
|
78
94
|
@collection.map(&:to_s).join
|
data/lib/vedeu/support/log.rb
CHANGED
@@ -31,8 +31,11 @@ module Vedeu
|
|
31
31
|
|
32
32
|
# Ensures we can always write to the log file by creating a lock-less
|
33
33
|
# log device.
|
34
|
+
#
|
34
35
|
class LocklessLogDevice < LogDevice
|
35
36
|
|
37
|
+
# Returns a new instance of Vedeu::LocklessLogDevice.
|
38
|
+
#
|
36
39
|
# @param log []
|
37
40
|
# @return []
|
38
41
|
def initialize(log = nil)
|
@@ -41,7 +41,7 @@ module Vedeu
|
|
41
41
|
#
|
42
42
|
# @return [String]
|
43
43
|
def input
|
44
|
-
if raw_mode?
|
44
|
+
keys_or_cmd = if raw_mode?
|
45
45
|
keys = console.getch
|
46
46
|
if keys.ord == 27
|
47
47
|
keys << console.read_nonblock(3) rescue nil
|
@@ -53,6 +53,10 @@ module Vedeu
|
|
53
53
|
console.gets.chomp
|
54
54
|
|
55
55
|
end
|
56
|
+
|
57
|
+
Vedeu.trigger(:tick, Time.now.to_f)
|
58
|
+
|
59
|
+
keys_or_cmd
|
56
60
|
end
|
57
61
|
alias_method :read, :input
|
58
62
|
|
@@ -62,6 +66,7 @@ module Vedeu
|
|
62
66
|
# @return [Array]
|
63
67
|
def output(*streams)
|
64
68
|
streams.each do |stream|
|
69
|
+
# Write the stream to the log file.
|
65
70
|
# Vedeu.log(Esc.escape(stream))
|
66
71
|
|
67
72
|
console.print(stream)
|
data/lib/vedeu/support/trace.rb
CHANGED
@@ -18,6 +18,8 @@ module Vedeu
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
+
# Returns a new instance of Vedeu::Visible
|
22
|
+
#
|
21
23
|
# @param visible [Boolean|Symbol]
|
22
24
|
# @return [Visible]
|
23
25
|
def initialize(visible = nil)
|
@@ -49,11 +51,15 @@ module Vedeu
|
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
54
|
+
# Returns a boolean indicating whether the instance is visible.
|
55
|
+
#
|
52
56
|
# @return [Boolean]
|
53
57
|
def visible?
|
54
58
|
@visible
|
55
59
|
end
|
56
60
|
|
61
|
+
# Returns a boolean indicating whether the instance is invisible.
|
62
|
+
#
|
57
63
|
# @return [Boolean]
|
58
64
|
def invisible?
|
59
65
|
!@visible
|
@@ -48,33 +48,6 @@ module Vedeu
|
|
48
48
|
|
49
49
|
it { subject.must_be_instance_of(String) }
|
50
50
|
it { subject.must_equal('C') }
|
51
|
-
|
52
|
-
context 'DSL #bottom_left' do
|
53
|
-
subject {
|
54
|
-
Vedeu.interface 'borders' do
|
55
|
-
border do
|
56
|
-
bottom_left '<'
|
57
|
-
end
|
58
|
-
geometry do
|
59
|
-
height 3
|
60
|
-
width 3
|
61
|
-
end
|
62
|
-
lines do
|
63
|
-
line ''
|
64
|
-
end
|
65
|
-
end
|
66
|
-
}
|
67
|
-
|
68
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
69
|
-
|
70
|
-
it 'allows the use of bottom_left within border' do
|
71
|
-
subject.border.to_s.must_equal(
|
72
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
73
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
74
|
-
"\e(0<\e(B\e(0q\e(B\e(0j\e(B"
|
75
|
-
)
|
76
|
-
end
|
77
|
-
end
|
78
51
|
end
|
79
52
|
|
80
53
|
describe '#bottom_right' do
|
@@ -84,33 +57,6 @@ module Vedeu
|
|
84
57
|
|
85
58
|
it { subject.must_be_instance_of(String) }
|
86
59
|
it { subject.must_equal('D') }
|
87
|
-
|
88
|
-
context 'DSL #bottom_right' do
|
89
|
-
subject {
|
90
|
-
Vedeu.interface 'borders' do
|
91
|
-
border do
|
92
|
-
bottom_right '>'
|
93
|
-
end
|
94
|
-
geometry do
|
95
|
-
height 3
|
96
|
-
width 3
|
97
|
-
end
|
98
|
-
lines do
|
99
|
-
line ''
|
100
|
-
end
|
101
|
-
end
|
102
|
-
}
|
103
|
-
|
104
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
105
|
-
|
106
|
-
it 'allows the use of bottom_right within border' do
|
107
|
-
subject.border.to_s.must_equal(
|
108
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
109
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
110
|
-
"\e(0m\e(B\e(0q\e(B\e(0>\e(B"
|
111
|
-
)
|
112
|
-
end
|
113
|
-
end
|
114
60
|
end
|
115
61
|
|
116
62
|
describe '#horizontal' do
|
@@ -120,33 +66,6 @@ module Vedeu
|
|
120
66
|
|
121
67
|
it { subject.must_be_instance_of(String) }
|
122
68
|
it { subject.must_equal('H') }
|
123
|
-
|
124
|
-
context 'DSL #horizontal' do
|
125
|
-
subject {
|
126
|
-
Vedeu.interface 'borders' do
|
127
|
-
border do
|
128
|
-
horizontal '~'
|
129
|
-
end
|
130
|
-
geometry do
|
131
|
-
height 3
|
132
|
-
width 3
|
133
|
-
end
|
134
|
-
lines do
|
135
|
-
line ''
|
136
|
-
end
|
137
|
-
end
|
138
|
-
}
|
139
|
-
|
140
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
141
|
-
|
142
|
-
it 'allows the use of horizontal within border' do
|
143
|
-
subject.border.to_s.must_equal(
|
144
|
-
"\e(0l\e(B\e(0~\e(B\e(0k\e(B\n" \
|
145
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
146
|
-
"\e(0m\e(B\e(0~\e(B\e(0j\e(B"
|
147
|
-
)
|
148
|
-
end
|
149
|
-
end
|
150
69
|
end
|
151
70
|
|
152
71
|
describe '#show_bottom' do
|
@@ -160,33 +79,6 @@ module Vedeu
|
|
160
79
|
it { subject.must_be_instance_of(FalseClass) }
|
161
80
|
end
|
162
81
|
|
163
|
-
context 'DSL #show_bottom' do
|
164
|
-
subject {
|
165
|
-
Vedeu.interface 'borders' do
|
166
|
-
border do
|
167
|
-
show_bottom ''
|
168
|
-
end
|
169
|
-
geometry do
|
170
|
-
height 3
|
171
|
-
width 3
|
172
|
-
end
|
173
|
-
lines do
|
174
|
-
line ''
|
175
|
-
end
|
176
|
-
end
|
177
|
-
}
|
178
|
-
|
179
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
180
|
-
|
181
|
-
it 'allows the use of show_bottom within border' do
|
182
|
-
subject.border.to_s.must_equal(
|
183
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
184
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
185
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
186
|
-
)
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
82
|
it { instance.must_respond_to(:bottom) }
|
191
83
|
end
|
192
84
|
|
@@ -214,33 +106,6 @@ module Vedeu
|
|
214
106
|
|
215
107
|
it { subject.must_be_instance_of(FalseClass) }
|
216
108
|
end
|
217
|
-
|
218
|
-
context 'DSL #show_left' do
|
219
|
-
subject {
|
220
|
-
Vedeu.interface 'borders' do
|
221
|
-
border do
|
222
|
-
show_left!
|
223
|
-
end
|
224
|
-
geometry do
|
225
|
-
height 3
|
226
|
-
width 3
|
227
|
-
end
|
228
|
-
lines do
|
229
|
-
line ''
|
230
|
-
end
|
231
|
-
end
|
232
|
-
}
|
233
|
-
|
234
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
235
|
-
|
236
|
-
it 'allows the use of show_left within border' do
|
237
|
-
subject.border.to_s.must_equal(
|
238
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
239
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
240
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
241
|
-
)
|
242
|
-
end
|
243
|
-
end
|
244
109
|
end
|
245
110
|
|
246
111
|
describe '#hide_left!' do
|
@@ -267,33 +132,6 @@ module Vedeu
|
|
267
132
|
|
268
133
|
it { subject.must_be_instance_of(FalseClass) }
|
269
134
|
end
|
270
|
-
|
271
|
-
context 'DSL #show_right' do
|
272
|
-
subject {
|
273
|
-
Vedeu.interface 'borders' do
|
274
|
-
border do
|
275
|
-
show_right!
|
276
|
-
end
|
277
|
-
geometry do
|
278
|
-
height 3
|
279
|
-
width 3
|
280
|
-
end
|
281
|
-
lines do
|
282
|
-
line ''
|
283
|
-
end
|
284
|
-
end
|
285
|
-
}
|
286
|
-
|
287
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
288
|
-
|
289
|
-
it 'allows the use of show_right within border' do
|
290
|
-
subject.border.to_s.must_equal(
|
291
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
292
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
293
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
294
|
-
)
|
295
|
-
end
|
296
|
-
end
|
297
135
|
end
|
298
136
|
|
299
137
|
describe '#hide_right!' do
|
@@ -320,33 +158,6 @@ module Vedeu
|
|
320
158
|
|
321
159
|
it { subject.must_be_instance_of(FalseClass) }
|
322
160
|
end
|
323
|
-
|
324
|
-
context 'DSL #show_top' do
|
325
|
-
subject {
|
326
|
-
Vedeu.interface 'borders' do
|
327
|
-
border do
|
328
|
-
show_top ''
|
329
|
-
end
|
330
|
-
geometry do
|
331
|
-
height 3
|
332
|
-
width 3
|
333
|
-
end
|
334
|
-
lines do
|
335
|
-
line ''
|
336
|
-
end
|
337
|
-
end
|
338
|
-
}
|
339
|
-
|
340
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
341
|
-
|
342
|
-
it 'allows the use of show_top within border' do
|
343
|
-
subject.border.to_s.must_equal(
|
344
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
345
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
346
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
347
|
-
)
|
348
|
-
end
|
349
|
-
end
|
350
161
|
end
|
351
162
|
|
352
163
|
describe '#hide_top!' do
|
@@ -368,33 +179,6 @@ module Vedeu
|
|
368
179
|
|
369
180
|
it { subject.must_be_instance_of(String) }
|
370
181
|
it { subject.must_equal('A') }
|
371
|
-
|
372
|
-
context 'DSL #top_left' do
|
373
|
-
subject {
|
374
|
-
Vedeu.interface 'borders' do
|
375
|
-
border do
|
376
|
-
top_left '{'
|
377
|
-
end
|
378
|
-
geometry do
|
379
|
-
height 3
|
380
|
-
width 3
|
381
|
-
end
|
382
|
-
lines do
|
383
|
-
line ''
|
384
|
-
end
|
385
|
-
end
|
386
|
-
}
|
387
|
-
|
388
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
389
|
-
|
390
|
-
it 'allows the use of top_left within border' do
|
391
|
-
subject.border.to_s.must_equal(
|
392
|
-
"\e(0{\e(B\e(0q\e(B\e(0k\e(B\n" \
|
393
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
394
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
395
|
-
)
|
396
|
-
end
|
397
|
-
end
|
398
182
|
end
|
399
183
|
|
400
184
|
describe '#top_right' do
|
@@ -404,33 +188,6 @@ module Vedeu
|
|
404
188
|
|
405
189
|
it { subject.must_be_instance_of(String) }
|
406
190
|
it { subject.must_equal('B') }
|
407
|
-
|
408
|
-
context 'DSL #top_right' do
|
409
|
-
subject {
|
410
|
-
Vedeu.interface 'borders' do
|
411
|
-
border do
|
412
|
-
top_right '}'
|
413
|
-
end
|
414
|
-
geometry do
|
415
|
-
height 3
|
416
|
-
width 3
|
417
|
-
end
|
418
|
-
lines do
|
419
|
-
line ''
|
420
|
-
end
|
421
|
-
end
|
422
|
-
}
|
423
|
-
|
424
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
425
|
-
|
426
|
-
it 'allows the use of top_right within border' do
|
427
|
-
subject.border.to_s.must_equal(
|
428
|
-
"\e(0l\e(B\e(0q\e(B\e(0}\e(B\n" \
|
429
|
-
"\e(0x\e(B \e(0x\e(B\n" \
|
430
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
431
|
-
)
|
432
|
-
end
|
433
|
-
end
|
434
191
|
end
|
435
192
|
|
436
193
|
describe '#vertical' do
|
@@ -440,33 +197,6 @@ module Vedeu
|
|
440
197
|
|
441
198
|
it { subject.must_be_instance_of(String) }
|
442
199
|
it { subject.must_equal('V') }
|
443
|
-
|
444
|
-
context 'DSL #vertical' do
|
445
|
-
subject {
|
446
|
-
Vedeu.interface 'borders' do
|
447
|
-
border do
|
448
|
-
vertical ':'
|
449
|
-
end
|
450
|
-
geometry do
|
451
|
-
height 3
|
452
|
-
width 3
|
453
|
-
end
|
454
|
-
lines do
|
455
|
-
line ''
|
456
|
-
end
|
457
|
-
end
|
458
|
-
}
|
459
|
-
|
460
|
-
it { subject.must_be_instance_of(Vedeu::Interface) }
|
461
|
-
|
462
|
-
it 'allows the use of vertical within border' do
|
463
|
-
subject.border.to_s.must_equal(
|
464
|
-
"\e(0l\e(B\e(0q\e(B\e(0k\e(B\n" \
|
465
|
-
"\e(0:\e(B \e(0:\e(B\n" \
|
466
|
-
"\e(0m\e(B\e(0q\e(B\e(0j\e(B"
|
467
|
-
)
|
468
|
-
end
|
469
|
-
end
|
470
200
|
end
|
471
201
|
|
472
202
|
end # Border
|