vedeu 0.0.30 → 0.0.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +4 -4
- data/lib/vedeu/configuration.rb +2 -2
- data/lib/vedeu/launcher.rb +2 -2
- data/lib/vedeu/models/command.rb +1 -1
- data/lib/vedeu/models/interface.rb +4 -0
- data/lib/vedeu/output/interface_renderer.rb +1 -1
- data/lib/vedeu/output/template.rb +23 -0
- data/lib/vedeu/output/text_adaptor.rb +1 -1
- data/lib/vedeu/process/process.rb +5 -1
- data/lib/vedeu/repository/command_repository.rb +3 -5
- data/lib/vedeu/repository/event_repository.rb +27 -0
- data/lib/vedeu/repository/interface_repository.rb +8 -6
- data/lib/vedeu/repository/storage.rb +2 -0
- data/lib/vedeu/support/esc.rb +2 -1
- data/lib/vedeu/support/geometry.rb +11 -23
- data/lib/vedeu/support/parser.rb +1 -1
- data/lib/vedeu/support/queue.rb +3 -1
- data/lib/vedeu.rb +18 -1
- data/test/example_app/bin/app +9 -0
- data/test/example_app/lib/app.rb +63 -0
- data/test/lib/vedeu/application_test.rb +6 -36
- data/test/lib/vedeu/configuration_test.rb +5 -31
- data/test/lib/vedeu/input/input_test.rb +4 -16
- data/test/lib/vedeu/launcher_test.rb +6 -15
- data/test/lib/vedeu/models/background_test.rb +5 -21
- data/test/lib/vedeu/models/colour_test.rb +18 -49
- data/test/lib/vedeu/models/command_test.rb +19 -83
- data/test/lib/vedeu/models/composition_test.rb +78 -175
- data/test/lib/vedeu/models/foreground_test.rb +4 -21
- data/test/lib/vedeu/models/interface_collection_test.rb +13 -45
- data/test/lib/vedeu/models/interface_test.rb +71 -195
- data/test/lib/vedeu/models/line_collection_test.rb +13 -52
- data/test/lib/vedeu/models/line_test.rb +17 -61
- data/test/lib/vedeu/models/presentation_test.rb +6 -19
- data/test/lib/vedeu/models/stream_collection_test.rb +10 -42
- data/test/lib/vedeu/models/stream_test.rb +16 -54
- data/test/lib/vedeu/models/style_collection_test.rb +1 -10
- data/test/lib/vedeu/output/interface_renderer_test.rb +7 -38
- data/test/lib/vedeu/output/output_test.rb +1 -18
- data/test/lib/vedeu/output/template.rb +20 -0
- data/test/lib/vedeu/output/text_adaptor_test.rb +9 -46
- data/test/lib/vedeu/process/process_test.rb +36 -38
- data/test/lib/vedeu/repository/command_repository_test.rb +16 -45
- data/test/lib/vedeu/repository/interface_repository_test.rb +36 -74
- data/test/lib/vedeu/repository/repository_test.rb +9 -33
- data/test/lib/vedeu/repository/storage_test.rb +7 -42
- data/test/lib/vedeu/support/esc_test.rb +46 -130
- data/test/lib/vedeu/support/event_repository_test.rb +31 -0
- data/test/lib/vedeu/support/exit_test.rb +1 -9
- data/test/lib/vedeu/support/geometry_test.rb +81 -105
- data/test/lib/vedeu/support/parser_test.rb +10 -54
- data/test/lib/vedeu/support/parsing/hash_parser_test.rb +18 -33
- data/test/lib/vedeu/support/parsing/json_parser_test.rb +4 -23
- data/test/lib/vedeu/support/queue_test.rb +33 -57
- data/test/lib/vedeu/support/terminal_test.rb +21 -52
- data/test/lib/vedeu/support/translator_test.rb +16 -33
- data/test/lib/vedeu/support/wordwrap_test.rb +29 -46
- data/test/lib/vedeu_test.rb +3 -5
- data/test/support/template.erb +3 -0
- data/test/test_helper.rb +1 -12
- data/vedeu.gemspec +8 -10
- metadata +26 -38
- data/lib/vedeu/support/events.rb +0 -21
- data/lib/vedeu/version.rb +0 -3
- data/test/lib/vedeu/support/events_test.rb +0 -45
- data/test/lib/vedeu/version_test.rb +0 -12
- data/test/support/output_1.json +0 -9
- data/test/support/output_1.rb +0 -14
@@ -3,67 +3,23 @@ require_relative '../../../../lib/vedeu/support/parser'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Parser do
|
6
|
-
let(:described_class) { Parser }
|
7
|
-
let(:subject) { described_class.new(output) }
|
8
|
-
let(:output) { File.read('test/support/output_1.json') }
|
9
|
-
|
10
|
-
describe '#initialize' do
|
11
|
-
let(:subject) { described_class.new(output) }
|
12
|
-
|
13
|
-
it 'returns a Parser instance' do
|
14
|
-
subject.must_be_instance_of(Parser)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'sets an instance variable' do
|
18
|
-
subject.instance_variable_get("@output").must_equal(output)
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'when the instance variable is nil' do
|
22
|
-
let(:subject) { described_class.new }
|
23
|
-
|
24
|
-
it 'set an instance variable' do
|
25
|
-
subject.instance_variable_get("@output").must_equal({})
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
6
|
describe '#parse' do
|
31
|
-
|
32
|
-
|
33
|
-
context 'when the output is empty' do
|
34
|
-
let(:output) {}
|
35
|
-
|
36
|
-
it 'returns a NilClass' do
|
37
|
-
subject.must_be_instance_of(NilClass)
|
38
|
-
end
|
7
|
+
it 'returns a NilClass when the output is empty' do
|
8
|
+
Parser.parse.must_be_instance_of(NilClass)
|
39
9
|
end
|
40
10
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
it 'returns a Composition' do
|
45
|
-
subject.must_be_instance_of(Composition)
|
46
|
-
end
|
11
|
+
it 'returns a Composition when the output is JSON' do
|
12
|
+
Parser.parse("{\"some\": \"JSON\"}").must_be_instance_of(Composition)
|
47
13
|
end
|
48
14
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
}
|
54
|
-
}
|
55
|
-
|
56
|
-
it 'returns a Composition' do
|
57
|
-
subject.must_be_instance_of(Composition)
|
58
|
-
end
|
15
|
+
it 'returns a Composition when the output is a Hash' do
|
16
|
+
Parser.parse({
|
17
|
+
parser_parse: 'Parser#parse'
|
18
|
+
}).must_be_instance_of(Composition)
|
59
19
|
end
|
60
20
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
it 'raises an exception' do
|
65
|
-
proc { subject }.must_raise(ParseError)
|
66
|
-
end
|
21
|
+
it 'raises an exception when the output is anything else' do
|
22
|
+
proc { Parser.parse([:invalid]) }.must_raise(ParseError)
|
67
23
|
end
|
68
24
|
end
|
69
25
|
end
|
@@ -3,42 +3,27 @@ require_relative '../../../../../lib/vedeu/support/parsing/hash_parser'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe HashParser do
|
6
|
-
let(:described_module) { HashParser }
|
7
|
-
let(:output) { {} }
|
8
|
-
|
9
6
|
describe '.parse' do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
it 'returns a Hash when the output is content for multiple interfaces' do
|
8
|
+
HashParser.parse({
|
9
|
+
test: 'Some content...',
|
10
|
+
dummy: 'More content...'
|
11
|
+
}).must_equal({
|
12
|
+
interfaces: [
|
13
|
+
{ name: "test", lines: [{ streams: { text: "Some content..." } }] },
|
14
|
+
{ name: "dummy", lines: [{streams: { text: "More content..." } }] }
|
15
|
+
]
|
16
|
+
})
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
it 'returns a Hash' do
|
28
|
-
subject.must_equal({ interfaces: [{ name: 'test', lines: lines }, { name: 'dummy', lines: lines }] })
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context 'when the output is content for a single interface' do
|
33
|
-
let(:output) {
|
34
|
-
{
|
35
|
-
dummy: 'Some content...'
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|
39
|
-
it 'returns a Hash' do
|
40
|
-
subject.must_equal({ interfaces: [{ name: 'dummy', lines: lines }] })
|
41
|
-
end
|
19
|
+
it 'returns a Hash when the output is content for a single interface' do
|
20
|
+
HashParser.parse({
|
21
|
+
dummy: 'Some content...'
|
22
|
+
}).must_equal({
|
23
|
+
interfaces: [
|
24
|
+
{ name: "dummy", lines: [{ streams: { text: "Some content..." } }] }
|
25
|
+
]
|
26
|
+
})
|
42
27
|
end
|
43
28
|
end
|
44
29
|
end
|
@@ -3,32 +3,13 @@ require_relative '../../../../../lib/vedeu/support/parsing/json_parser'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe JSONParser do
|
6
|
-
let(:described_module) { JSONParser }
|
7
|
-
let(:output) { "{}" }
|
8
|
-
|
9
6
|
describe '.parse' do
|
10
|
-
|
11
|
-
|
12
|
-
it 'returns a Hash' do
|
13
|
-
subject.must_be_instance_of(Hash)
|
7
|
+
it 'returns a hash when the JSON is valid' do
|
8
|
+
JSONParser.parse("{\"some\": \"JSON\"}").must_be_instance_of(Hash)
|
14
9
|
end
|
15
10
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
it 'returns a Hash' do
|
20
|
-
subject.must_be_instance_of(Hash)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
context 'when the JSON is invalid' do
|
25
|
-
let(:output) { "{}" }
|
26
|
-
|
27
|
-
before { Oj.stubs(:load).raises(Oj::ParseError) }
|
28
|
-
|
29
|
-
it 'returns a Hash' do
|
30
|
-
subject.must_be_instance_of(Hash)
|
31
|
-
end
|
11
|
+
it 'returns an empty hash when the JSON is invalid' do
|
12
|
+
JSONParser.parse("{ invalid JSON }").must_be_instance_of(Hash)
|
32
13
|
end
|
33
14
|
end
|
34
15
|
end
|
@@ -3,94 +3,70 @@ require_relative '../../../../lib/vedeu/support/queue'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Queue do
|
6
|
-
let(:described_class) { Queue }
|
7
|
-
|
8
6
|
describe '.dequeue' do
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
it 'returns a NilClass' do
|
13
|
-
subject.must_be_instance_of(NilClass)
|
14
|
-
end
|
7
|
+
it 'returns a NilClass when the queue is empty' do
|
8
|
+
Queue.reset
|
9
|
+
Queue.dequeue.must_be_instance_of(NilClass)
|
15
10
|
end
|
16
11
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
it 'returns the first entry added' do
|
22
|
-
subject.must_be_instance_of(Symbol)
|
23
|
-
end
|
12
|
+
it 'returns the first entry added when the queue is not empty' do
|
13
|
+
Queue.reset
|
14
|
+
Queue.enqueue(:result)
|
15
|
+
Queue.dequeue.must_be_instance_of(Symbol)
|
24
16
|
end
|
25
17
|
end
|
26
18
|
|
27
19
|
describe '.enqueue' do
|
28
|
-
let(:subject) { described_class.enqueue(:result) }
|
29
|
-
|
30
|
-
before { described_class.clear }
|
31
|
-
after { described_class.clear }
|
32
|
-
|
33
|
-
it 'returns an Array' do
|
34
|
-
subject.must_be_instance_of(Array)
|
35
|
-
end
|
36
|
-
|
37
20
|
it 'contains the enqueued item' do
|
38
|
-
|
21
|
+
Queue.reset
|
22
|
+
Queue.enqueue(:result).size.must_equal(1)
|
39
23
|
end
|
40
24
|
end
|
41
25
|
|
42
26
|
describe '.enqueued?' do
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
after { described_class.clear }
|
48
|
-
|
49
|
-
it 'returns a TrueClass' do
|
50
|
-
subject.must_be_instance_of(TrueClass)
|
51
|
-
end
|
27
|
+
it 'returns true when the queue is not empty' do
|
28
|
+
Queue.reset
|
29
|
+
Queue.enqueue(:result)
|
30
|
+
Queue.enqueued?.must_be_instance_of(TrueClass)
|
52
31
|
end
|
53
32
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
33
|
+
it 'returns false when the queue is empty' do
|
34
|
+
Queue.reset
|
35
|
+
Queue.enqueued?.must_be_instance_of(FalseClass)
|
58
36
|
end
|
59
37
|
end
|
60
38
|
|
61
39
|
describe '.size' do
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
subject.must_be_instance_of(Fixnum)
|
40
|
+
it 'returns the size of the queue when the queue is empty' do
|
41
|
+
Queue.reset
|
42
|
+
Queue.size.must_equal(0)
|
66
43
|
end
|
67
44
|
|
68
|
-
it 'returns the size of the queue' do
|
69
|
-
|
45
|
+
it 'returns the size of the queue when the queue is not empty' do
|
46
|
+
Queue.reset
|
47
|
+
Queue.enqueue(:result).enqueue(:result)
|
48
|
+
Queue.size.must_equal(2)
|
70
49
|
end
|
71
50
|
end
|
72
51
|
|
73
52
|
describe '.clear' do
|
74
|
-
let(:subject) { described_class.clear }
|
75
|
-
|
76
|
-
it 'returns an Array' do
|
77
|
-
subject.must_be_instance_of(Array)
|
78
|
-
end
|
79
|
-
|
80
53
|
it 'returns an empty array' do
|
81
|
-
|
54
|
+
Queue.reset
|
55
|
+
Queue.enqueue(:result)
|
56
|
+
Queue.reset.must_be_empty
|
82
57
|
end
|
83
58
|
end
|
84
59
|
|
85
60
|
describe '.view' do
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
subject.must_be_instance_of(String)
|
61
|
+
it 'returns the queue as a String when the queue is empty' do
|
62
|
+
Queue.reset
|
63
|
+
Queue.view.must_equal('[]')
|
90
64
|
end
|
91
65
|
|
92
|
-
it 'returns the queue as a String' do
|
93
|
-
|
66
|
+
it 'returns the queue as a String when the queue is not empty' do
|
67
|
+
Queue.reset
|
68
|
+
Queue.enqueue(:result)
|
69
|
+
Queue.view.must_equal('[:result]')
|
94
70
|
end
|
95
71
|
end
|
96
72
|
end
|
@@ -3,90 +3,59 @@ require_relative '../../../../lib/vedeu/support/terminal'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Terminal do
|
6
|
-
let(:described_class) { Terminal }
|
7
|
-
let(:console) { stub }
|
8
|
-
|
9
|
-
before do
|
10
|
-
IO.stubs(:console).returns(console)
|
11
|
-
console.stubs(:winsize).returns([25, 80])
|
12
|
-
console.stubs(:print)
|
13
|
-
end
|
14
|
-
|
15
6
|
describe '.input' do
|
16
|
-
let(:subject) { described_class.input }
|
17
|
-
|
18
|
-
before { console.stubs(:gets).returns("test\n") }
|
19
|
-
|
20
|
-
it 'returns a String' do
|
21
|
-
subject.must_be_instance_of(String)
|
22
|
-
end
|
23
|
-
|
24
7
|
it 'returns the entered string' do
|
25
|
-
|
8
|
+
console = IO.console
|
9
|
+
console.stub :gets, "test\n" do
|
10
|
+
Terminal.input.must_equal('test')
|
11
|
+
end
|
26
12
|
end
|
27
13
|
end
|
28
14
|
|
29
15
|
describe '.output' do
|
30
|
-
let(:subject) { described_class.output }
|
31
|
-
|
32
|
-
it 'returns a String' do
|
33
|
-
subject.must_be_instance_of(String)
|
34
|
-
end
|
35
|
-
|
36
16
|
it 'returns the output' do
|
37
|
-
|
17
|
+
Terminal.output.must_equal('')
|
38
18
|
end
|
39
19
|
end
|
40
20
|
|
41
21
|
describe '.width' do
|
42
|
-
let(:subject) { described_class.width }
|
43
|
-
|
44
|
-
it 'returns a Fixnum' do
|
45
|
-
subject.must_be_instance_of(Fixnum)
|
46
|
-
end
|
47
|
-
|
48
22
|
it 'returns the width of the terminal' do
|
49
|
-
|
23
|
+
console = IO.console
|
24
|
+
console.stub :winsize, [25, 80] do
|
25
|
+
Terminal.width.must_equal(80)
|
26
|
+
end
|
50
27
|
end
|
51
28
|
end
|
52
29
|
|
53
30
|
describe '.height' do
|
54
|
-
let(:subject) { described_class.height }
|
55
|
-
|
56
|
-
it 'returns a Fixnum' do
|
57
|
-
subject.must_be_instance_of(Fixnum)
|
58
|
-
end
|
59
|
-
|
60
31
|
it 'returns the height of the terminal' do
|
61
|
-
|
32
|
+
console = IO.console
|
33
|
+
console.stub :winsize, [25, 80] do
|
34
|
+
Terminal.height.must_equal(25)
|
35
|
+
end
|
62
36
|
end
|
63
37
|
end
|
64
38
|
|
65
39
|
describe '.size' do
|
66
|
-
let(:subject) { described_class.size }
|
67
|
-
|
68
|
-
it 'returns an Array' do
|
69
|
-
subject.must_be_instance_of(Array)
|
70
|
-
end
|
71
|
-
|
72
40
|
it 'returns the width and height of the terminal' do
|
73
|
-
|
41
|
+
console = IO.console
|
42
|
+
console.stub :winsize, [25, 80] do
|
43
|
+
Terminal.size.must_equal([25, 80])
|
44
|
+
end
|
74
45
|
end
|
75
46
|
end
|
76
47
|
|
77
48
|
describe '.open' do
|
78
|
-
let(:subject) { described_class.open }
|
79
|
-
|
80
49
|
it 'returns a NilClass' do
|
81
|
-
|
50
|
+
skip
|
51
|
+
Terminal.open.must_be_instance_of(NilClass)
|
82
52
|
end
|
83
53
|
end
|
84
54
|
|
85
55
|
describe '.console' do
|
86
|
-
let(:subject) { described_class.console }
|
87
|
-
|
88
56
|
it 'returns the console' do
|
89
|
-
|
57
|
+
console = IO.console
|
58
|
+
Terminal.console.must_equal(console)
|
90
59
|
end
|
91
60
|
end
|
92
61
|
end
|
@@ -3,17 +3,6 @@ require_relative '../../../../lib/vedeu/support/translator'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Translator do
|
6
|
-
let(:described_class) { Translator }
|
7
|
-
let(:html_colour) {}
|
8
|
-
|
9
|
-
describe '#initialize' do
|
10
|
-
let(:subject) { described_class.new(html_colour) }
|
11
|
-
|
12
|
-
it 'returns a Translator instance' do
|
13
|
-
subject.must_be_instance_of(Translator)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
6
|
describe '#translate' do
|
18
7
|
{
|
19
8
|
'#ff0000' => 196, # red
|
@@ -23,35 +12,29 @@ module Vedeu
|
|
23
12
|
'#aadd00' => 148, # lime green
|
24
13
|
'#b94f1c' => 130, # sunset orange
|
25
14
|
}.map do |html_colour, terminal_colour|
|
26
|
-
|
27
|
-
|
28
|
-
described_class.translate(html_colour).must_be_instance_of(Fixnum)
|
29
|
-
|
30
|
-
described_class.translate(html_colour).must_equal(terminal_colour)
|
31
|
-
end
|
15
|
+
it 'translation is performed' do
|
16
|
+
Translator.translate(html_colour).must_equal(terminal_colour)
|
32
17
|
end
|
33
18
|
end
|
34
19
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
20
|
+
it 'returns empty string when not present' do
|
21
|
+
Translator.translate.must_equal('')
|
22
|
+
end
|
39
23
|
|
40
|
-
|
41
|
-
|
42
|
-
|
24
|
+
it 'returns empty string when the wrong type!' do
|
25
|
+
Translator.translate(:wrong_type).must_equal('')
|
26
|
+
end
|
43
27
|
|
44
|
-
|
45
|
-
|
46
|
-
|
28
|
+
it 'returns empty string when invalid format' do
|
29
|
+
Translator.translate('345678').must_equal('')
|
30
|
+
end
|
47
31
|
|
48
|
-
|
49
|
-
|
50
|
-
|
32
|
+
it 'returns empty string when invalid format' do
|
33
|
+
Translator.translate('#h11111').must_equal('')
|
34
|
+
end
|
51
35
|
|
52
|
-
|
53
|
-
|
54
|
-
end
|
36
|
+
it 'returns empty string when invalid format' do
|
37
|
+
Translator.translate('#1111').must_equal('')
|
55
38
|
end
|
56
39
|
end
|
57
40
|
end
|
@@ -3,70 +3,53 @@ require_relative '../../../../lib/vedeu/support/wordwrap'
|
|
3
3
|
|
4
4
|
module Vedeu
|
5
5
|
describe Wordwrap do
|
6
|
-
let(:described_class) { Wordwrap }
|
7
|
-
let(:value) {
|
8
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' \
|
9
|
-
"Curabitur aliquet turpis id dui condimentum elementum.\n" \
|
10
|
-
'Pellentesque blandit vulputate imperdiet. Quisque ut arcu ' \
|
11
|
-
"dolor. Morbi nec vulputate purus.\n\nQuisque porta feugiat " \
|
12
|
-
'egestas. Aenean ac ipsum varius, lobortis lacus at, mattis ' \
|
13
|
-
"est.\nQuisque viverra facilisis tortor, id convallis metus " \
|
14
|
-
'laoreet quis. Curabitur auctor nunc blandit enim volutpat ' \
|
15
|
-
'hendrerit. Phasellus accumsan tempor iaculis. Ut in semper ' \
|
16
|
-
"massa. Cras quis viverra elit.\n\nInteger vitae mattis est. " \
|
17
|
-
'Cras id nisl porttitor lectus placerat gravida sit amet ' \
|
18
|
-
"quis diam.\n\nDonec mollis, nisi sit amet congue sagittis, " \
|
19
|
-
'sapien magna rhoncus justo, vel molestie metus sapien eget ' \
|
20
|
-
"libero.\n\n\n"
|
21
|
-
}
|
22
|
-
let(:options) { {} }
|
23
|
-
|
24
6
|
describe '#wordwrap' do
|
25
7
|
let(:formatted_value) {
|
26
|
-
|
8
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' \
|
27
9
|
"Curabitur\naliquet turpis id dui condimentum elementum.\n" \
|
28
|
-
|
10
|
+
'Pellentesque blandit vulputate imperdiet. Quisque ut arcu ' \
|
29
11
|
"dolor.\nMorbi nec vulputate purus.\n\nQuisque porta " \
|
30
12
|
"feugiat egestas. Aenean ac ipsum varius, lobortis\nlacus " \
|
31
13
|
"at, mattis est.\nQuisque viverra facilisis tortor, id " \
|
32
14
|
"convallis metus laoreet quis.\nCurabitur auctor nunc " \
|
33
15
|
"blandit enim volutpat hendrerit. Phasellus\naccumsan " \
|
34
|
-
|
16
|
+
'tempor iaculis. Ut in semper massa. Cras quis viverra ' \
|
35
17
|
"elit.\n\nInteger vitae mattis est. Cras id nisl porttitor " \
|
36
18
|
"lectus placerat\ngravida sit amet quis diam.\n\nDonec " \
|
37
|
-
|
19
|
+
'mollis, nisi sit amet congue sagittis, sapien magna ' \
|
38
20
|
"rhoncus\njusto, vel molestie metus sapien eget libero."
|
39
21
|
}
|
40
22
|
|
41
|
-
subject { described_class.this(value, options) }
|
42
|
-
|
43
|
-
it 'returns a String' do
|
44
|
-
subject.must_be_instance_of(String)
|
45
|
-
end
|
46
|
-
|
47
23
|
it 'returns formatted text' do
|
48
|
-
|
24
|
+
value =
|
25
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' \
|
26
|
+
"Curabitur aliquet turpis id dui condimentum elementum.\n" \
|
27
|
+
'Pellentesque blandit vulputate imperdiet. Quisque ut arcu ' \
|
28
|
+
"dolor. Morbi nec vulputate purus.\n\nQuisque porta feugiat " \
|
29
|
+
'egestas. Aenean ac ipsum varius, lobortis lacus at, mattis ' \
|
30
|
+
"est.\nQuisque viverra facilisis tortor, id convallis metus " \
|
31
|
+
'laoreet quis. Curabitur auctor nunc blandit enim volutpat ' \
|
32
|
+
'hendrerit. Phasellus accumsan tempor iaculis. Ut in semper ' \
|
33
|
+
"massa. Cras quis viverra elit.\n\nInteger vitae mattis est." \
|
34
|
+
' Cras id nisl porttitor lectus placerat gravida sit amet ' \
|
35
|
+
"quis diam.\n\nDonec mollis, nisi sit amet congue sagittis, " \
|
36
|
+
'sapien magna rhoncus justo, vel molestie metus sapien eget ' \
|
37
|
+
"libero.\n\n\n"
|
38
|
+
Wordwrap.this(value, {}).must_equal(formatted_value)
|
49
39
|
end
|
50
40
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
|
58
|
-
it 'returns formatted text' do
|
59
|
-
subject.must_equal(formatted_value)
|
60
|
-
end
|
41
|
+
it 'returns formatted text when the content should be pruned' do
|
42
|
+
value = 'Lorem ipsum dolor sit amet, consectetur ' \
|
43
|
+
'adipiscing elit. Curabitur aviverra facil tortor.'
|
44
|
+
result = 'Lorem ipsum dolor sit amet, consectetur ' \
|
45
|
+
'adipiscing elit. Curabitur a...'
|
46
|
+
Wordwrap.this(value, { width: 70, prune: true })
|
47
|
+
.must_equal(result)
|
61
48
|
end
|
62
49
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
it 'returns formatted text' do
|
68
|
-
subject.must_equal(value)
|
69
|
-
end
|
50
|
+
it 'returns formatted text when the content is less than the prune size' do
|
51
|
+
Wordwrap.this('Wordwrap.this', { width: 70, prune: true })
|
52
|
+
.must_equal('Wordwrap.this')
|
70
53
|
end
|
71
54
|
end
|
72
55
|
end
|
data/test/lib/vedeu_test.rb
CHANGED
@@ -2,11 +2,9 @@ require_relative '../test_helper'
|
|
2
2
|
require_relative '../../lib/vedeu'
|
3
3
|
|
4
4
|
describe Vedeu do
|
5
|
-
let(:described_class) { Vedeu }
|
6
|
-
|
7
5
|
describe '.logger' do
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
it 'needs a spec, please write one.' do
|
7
|
+
skip
|
8
|
+
end
|
11
9
|
end
|
12
10
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,22 +1,13 @@
|
|
1
1
|
require 'simplecov'
|
2
2
|
require 'minitest/autorun'
|
3
3
|
require 'minitest/pride'
|
4
|
-
require '
|
5
|
-
require 'ruby-prof'
|
4
|
+
require 'minitest/hell'
|
6
5
|
|
7
6
|
SimpleCov.start do
|
8
7
|
command_name 'MiniTest::Spec'
|
9
8
|
add_filter '/test/'
|
10
9
|
end unless ENV['no_simplecov']
|
11
10
|
|
12
|
-
module MiniTest
|
13
|
-
class Spec
|
14
|
-
class << self
|
15
|
-
alias_method :context, :describe
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
11
|
Minitest.after_run do
|
21
12
|
print [27.chr, '[', '?25h'].join # show cursor
|
22
13
|
end
|
@@ -27,5 +18,3 @@ end
|
|
27
18
|
# Minitest::Reporters::DefaultReporter.new({ color: true, slow_count: 5 }),
|
28
19
|
# Minitest::Reporters::SpecReporter.new
|
29
20
|
# )
|
30
|
-
|
31
|
-
require 'mocha/setup'
|