vedeu 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/docs/dsl.md +3 -3
  3. data/examples/borders_app.rb +2 -0
  4. data/examples/colours_app.rb +2 -0
  5. data/examples/configuration_app.rb +2 -0
  6. data/examples/drb_app.rb +2 -0
  7. data/examples/focus_app.rb +2 -0
  8. data/examples/hello_world.rb +2 -0
  9. data/examples/material_colours_app.rb +2 -0
  10. data/lib/vedeu.rb +2 -0
  11. data/lib/vedeu/all.rb +4 -13
  12. data/lib/vedeu/api.rb +7 -6
  13. data/lib/vedeu/borders/border.rb +1 -1
  14. data/lib/vedeu/borders/render_border.rb +18 -18
  15. data/lib/vedeu/buffers/buffer.rb +18 -28
  16. data/lib/vedeu/colours/colour.rb +1 -1
  17. data/lib/vedeu/colours/colour_translator.rb +1 -1
  18. data/lib/vedeu/cursor/cursor.rb +9 -6
  19. data/lib/vedeu/dsl/border.rb +1 -1
  20. data/lib/vedeu/dsl/composition.rb +5 -5
  21. data/lib/vedeu/dsl/geometry.rb +1 -1
  22. data/lib/vedeu/dsl/group.rb +1 -1
  23. data/lib/vedeu/dsl/interface.rb +69 -93
  24. data/lib/vedeu/dsl/keymap.rb +1 -1
  25. data/lib/vedeu/dsl/line.rb +11 -11
  26. data/lib/vedeu/dsl/shared.rb +81 -0
  27. data/lib/vedeu/dsl/stream.rb +3 -3
  28. data/lib/vedeu/dsl/view.rb +76 -64
  29. data/lib/vedeu/models/escape.rb +1 -1
  30. data/lib/vedeu/models/interface.rb +3 -57
  31. data/lib/vedeu/models/menu.rb +1 -1
  32. data/lib/vedeu/models/views/all.rb +22 -0
  33. data/lib/vedeu/models/views/char.rb +175 -0
  34. data/lib/vedeu/models/views/chars.rb +13 -0
  35. data/lib/vedeu/models/views/composition.rb +73 -0
  36. data/lib/vedeu/models/views/line.rb +111 -0
  37. data/lib/vedeu/models/views/lines.rb +13 -0
  38. data/lib/vedeu/models/views/stream.rb +122 -0
  39. data/lib/vedeu/models/views/streams.rb +13 -0
  40. data/lib/vedeu/models/views/view.rb +157 -0
  41. data/lib/vedeu/models/views/view_collection.rb +13 -0
  42. data/lib/vedeu/null/view.rb +67 -0
  43. data/lib/vedeu/output/clear/named_interface.rb +4 -4
  44. data/lib/vedeu/output/compressor.rb +6 -6
  45. data/lib/vedeu/output/html_char.rb +6 -6
  46. data/lib/vedeu/output/output.rb +3 -3
  47. data/lib/vedeu/output/presentation.rb +1 -1
  48. data/lib/vedeu/output/renderers/escape_sequence.rb +1 -1
  49. data/lib/vedeu/output/renderers/file.rb +1 -1
  50. data/lib/vedeu/output/renderers/html.rb +3 -3
  51. data/lib/vedeu/output/renderers/json.rb +4 -4
  52. data/lib/vedeu/output/renderers/null.rb +1 -1
  53. data/lib/vedeu/output/renderers/terminal.rb +5 -5
  54. data/lib/vedeu/output/renderers/text.rb +3 -3
  55. data/lib/vedeu/output/style.rb +1 -1
  56. data/lib/vedeu/output/text.rb +20 -15
  57. data/lib/vedeu/output/viewport.rb +16 -23
  58. data/lib/vedeu/output/virtual_buffer.rb +9 -8
  59. data/lib/vedeu/output/virtual_terminal.rb +11 -11
  60. data/lib/vedeu/output/wordwrap.rb +5 -5
  61. data/lib/vedeu/runtime/application.rb +1 -1
  62. data/lib/vedeu/runtime/main_loop.rb +1 -1
  63. data/lib/vedeu/templating/helpers.rb +11 -10
  64. data/lib/vedeu/templating/template.rb +1 -1
  65. data/lib/vedeu/templating/view_template.rb +6 -6
  66. data/lib/vedeu/version.rb +1 -2
  67. data/test/lib/vedeu/api_test.rb +30 -30
  68. data/test/lib/vedeu/buffers/buffer_test.rb +5 -139
  69. data/test/lib/vedeu/colours/colour_translator_test.rb +3 -3
  70. data/test/lib/vedeu/configuration/api_test.rb +3 -3
  71. data/test/lib/vedeu/cursor/refresh_cursor_test.rb +1 -1
  72. data/test/lib/vedeu/dsl/composition_test.rb +7 -7
  73. data/test/lib/vedeu/dsl/group_test.rb +2 -2
  74. data/test/lib/vedeu/dsl/interface_test.rb +31 -21
  75. data/test/lib/vedeu/dsl/keymap_test.rb +4 -4
  76. data/test/lib/vedeu/dsl/line_test.rb +8 -8
  77. data/test/lib/vedeu/dsl/stream_test.rb +4 -4
  78. data/test/lib/vedeu/dsl/text_test.rb +11 -11
  79. data/test/lib/vedeu/dsl/view_test.rb +24 -29
  80. data/test/lib/vedeu/geometry/grid_test.rb +4 -4
  81. data/test/lib/vedeu/input/key_test.rb +1 -1
  82. data/test/lib/vedeu/internal_api_test.rb +18 -18
  83. data/test/lib/vedeu/models/focus_test.rb +54 -54
  84. data/test/lib/vedeu/models/interface_test.rb +11 -105
  85. data/test/lib/vedeu/models/menu_test.rb +1 -1
  86. data/test/lib/vedeu/models/views/char_test.rb +257 -0
  87. data/test/lib/vedeu/models/views/chars_test.rb +22 -0
  88. data/test/lib/vedeu/models/views/composition_test.rb +61 -0
  89. data/test/lib/vedeu/models/views/line_test.rb +189 -0
  90. data/test/lib/vedeu/models/views/lines_test.rb +22 -0
  91. data/test/lib/vedeu/models/views/stream_test.rb +138 -0
  92. data/test/lib/vedeu/models/views/streams_test.rb +22 -0
  93. data/test/lib/vedeu/models/views/view_test.rb +40 -0
  94. data/test/lib/vedeu/null/view_test.rb +12 -0
  95. data/test/lib/vedeu/output/clear/named_interface_test.rb +4 -4
  96. data/test/lib/vedeu/output/compressor_test.rb +28 -28
  97. data/test/lib/vedeu/output/html_char_test.rb +2 -2
  98. data/test/lib/vedeu/output/presentation_test.rb +10 -14
  99. data/test/lib/vedeu/output/renderers/escape_sequence_test.rb +20 -4
  100. data/test/lib/vedeu/output/renderers/html_test.rb +4 -4
  101. data/test/lib/vedeu/output/renderers/json_test.rb +3 -3
  102. data/test/lib/vedeu/output/text_test.rb +10 -10
  103. data/test/lib/vedeu/output/viewport_test.rb +21 -23
  104. data/test/lib/vedeu/output/virtual_buffer_test.rb +1 -1
  105. data/test/lib/vedeu/output/virtual_terminal_test.rb +1 -1
  106. data/test/lib/vedeu/output/wordwrap_test.rb +9 -9
  107. data/test/lib/vedeu/repositories/repository_test.rb +2 -2
  108. data/test/lib/vedeu/templating/helpers_test.rb +6 -39
  109. data/test/lib/vedeu/templating/template_test.rb +2 -2
  110. data/test/lib/vedeu/templating/view_template_test.rb +91 -91
  111. data/test/lib/vedeu/terminal_test.rb +1 -1
  112. metadata +33 -27
  113. data/lib/vedeu/buffers/display_buffer.rb +0 -39
  114. data/lib/vedeu/models/char.rb +0 -170
  115. data/lib/vedeu/models/chars.rb +0 -9
  116. data/lib/vedeu/models/composition.rb +0 -66
  117. data/lib/vedeu/models/line.rb +0 -112
  118. data/lib/vedeu/models/lines.rb +0 -9
  119. data/lib/vedeu/models/stream.rb +0 -122
  120. data/lib/vedeu/models/streams.rb +0 -9
  121. data/test/lib/vedeu/buffers/display_buffer_test.rb +0 -61
  122. data/test/lib/vedeu/models/char_test.rb +0 -253
  123. data/test/lib/vedeu/models/chars_test.rb +0 -18
  124. data/test/lib/vedeu/models/composition_test.rb +0 -57
  125. data/test/lib/vedeu/models/line_test.rb +0 -189
  126. data/test/lib/vedeu/models/lines_test.rb +0 -18
  127. data/test/lib/vedeu/models/stream_test.rb +0 -141
  128. data/test/lib/vedeu/models/streams_test.rb +0 -18
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Views
6
+
7
+ describe Lines do
8
+
9
+ let(:described) { Vedeu::Views::Lines }
10
+ let(:instance) { described.new }
11
+
12
+ it { described.superclass.must_equal(Vedeu::Collection) }
13
+
14
+ describe '#initialize' do
15
+ it { instance.must_be_instance_of(described) }
16
+ end
17
+
18
+ end # Lines
19
+
20
+ end # Views
21
+
22
+ end # Vedeu
@@ -0,0 +1,138 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Views
6
+
7
+ describe Stream do
8
+
9
+ let(:described) { Vedeu::Views::Stream }
10
+ let(:instance) { described.new(attributes) }
11
+ let(:attributes) {
12
+ {
13
+ value: _value,
14
+ parent: parent,
15
+ colour: colour,
16
+ style: style
17
+ }
18
+ }
19
+ let(:_value) { 'Some text' }
20
+ let(:parent) {
21
+ Vedeu::Views::Line.new(streams: [],
22
+ parent: line_parent,
23
+ colour: parent_colour,
24
+ style: style)
25
+ }
26
+ let(:parent_colour) {
27
+ Vedeu::Colour.new(background: '#0000ff', foreground: '#ffff00')
28
+ }
29
+ let(:colour) {
30
+ Vedeu::Colour.new(background: '#ff0000', foreground: '#000000')
31
+ }
32
+ let(:style) { Vedeu::Style.new('normal') }
33
+ let(:line_parent) { Vedeu::Views::View.new(name: 'Vedeu::Views::Stream') }
34
+
35
+ describe '#initialize' do
36
+ it { instance.must_be_instance_of(described) }
37
+ it { instance.instance_variable_get('@value').must_equal(_value) }
38
+ it { instance.instance_variable_get('@parent').must_equal(parent) }
39
+ end
40
+
41
+ describe 'accessors' do
42
+ it { instance.must_respond_to(:parent) }
43
+ it { instance.must_respond_to(:parent=) }
44
+ it { instance.must_respond_to(:value) }
45
+ it { instance.must_respond_to(:content) }
46
+ it { instance.must_respond_to(:data) }
47
+ it { instance.must_respond_to(:text) }
48
+ it { instance.must_respond_to(:value=) }
49
+ it { instance.must_respond_to(:attributes) }
50
+ end
51
+
52
+ describe '#add' do
53
+ let(:child) { instance }
54
+
55
+ subject { instance.add(child) }
56
+
57
+ it { subject.must_be_instance_of(Vedeu::Views::Streams) }
58
+
59
+ it { instance.must_respond_to(:<<) }
60
+ end
61
+
62
+ describe '#chars' do
63
+ subject { instance.chars }
64
+
65
+ it { subject.must_be_instance_of(Array) }
66
+
67
+ context 'when there is content' do
68
+ it { subject.size.must_equal(9) }
69
+ end
70
+
71
+ context 'when there is no content' do
72
+ let(:_value) { '' }
73
+
74
+ it 'returns an empty collection' do
75
+ subject.must_equal([])
76
+ end
77
+ end
78
+ end
79
+
80
+ describe '#empty?' do
81
+ subject { instance.empty? }
82
+
83
+ context 'when there is no content' do
84
+ let(:_value) { '' }
85
+
86
+ it { subject.must_equal(true) }
87
+ end
88
+
89
+ context 'when there is content' do
90
+ it { subject.must_equal(false) }
91
+ end
92
+ end
93
+
94
+ describe '#eql?' do
95
+ let(:other) { described.new(attributes) }
96
+
97
+ subject { instance.eql?(other) }
98
+
99
+ it { subject.must_equal(true) }
100
+
101
+ context 'when different to other' do
102
+ let(:other) {
103
+ described.new(colour: Vedeu::Colour.coerce(background: '#ff0000'))
104
+ }
105
+
106
+ it { subject.must_equal(false) }
107
+ end
108
+ end
109
+
110
+ describe '#name' do
111
+ subject { instance.name }
112
+
113
+ context 'when a parent is defined' do
114
+ it { subject.must_be_instance_of(String) }
115
+ end
116
+
117
+ context 'when a parent is not defined' do
118
+ before { instance.stubs(:parent) }
119
+
120
+ it { subject.must_be_instance_of(NilClass) }
121
+ end
122
+ end
123
+
124
+ describe '#size' do
125
+ subject { instance.size }
126
+
127
+ it { subject.must_be_instance_of(Fixnum) }
128
+
129
+ it 'returns the size of the stream' do
130
+ subject.must_equal(9)
131
+ end
132
+ end
133
+
134
+ end # Stream
135
+
136
+ end # Views
137
+
138
+ end # Vedeu
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Views
6
+
7
+ describe Streams do
8
+
9
+ let(:described) { Vedeu::Views::Streams }
10
+ let(:instance) { described.new }
11
+
12
+ it { described.superclass.must_equal(Vedeu::Collection) }
13
+
14
+ describe '#initialize' do
15
+ it { instance.must_be_instance_of(described) }
16
+ end
17
+
18
+ end # Streams
19
+
20
+ end # Views
21
+
22
+ end # Vedeu
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Views
6
+
7
+ describe View do
8
+
9
+ let(:described) { Vedeu::Views::View }
10
+ let(:instance) { described.new(attributes) }
11
+ let(:attributes) {
12
+ {
13
+ name: _name,
14
+ }
15
+ }
16
+ let(:_name) { 'Vedeu::Views::View' }
17
+
18
+ describe '#store_immediate' do
19
+ subject { instance.store_immediate }
20
+
21
+ it { subject.must_be_instance_of(described) }
22
+ end
23
+
24
+ describe '#store_deferred' do
25
+ subject { instance.store_deferred }
26
+
27
+ it { subject.must_be_instance_of(described) }
28
+
29
+ context 'when the name is not defined' do
30
+ let(:_name) {}
31
+
32
+ it { proc { subject }.must_raise(Vedeu::InvalidSyntax) }
33
+ end
34
+ end
35
+
36
+ end # View
37
+
38
+ end # Views
39
+
40
+ end # Vedeu
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Null
6
+
7
+ describe View do
8
+ end # View
9
+
10
+ end # Null
11
+
12
+ end # Vedeu
@@ -38,12 +38,12 @@ module Vedeu
38
38
  let(:output) {
39
39
  [
40
40
  [
41
- Vedeu::Char.new(value: ' ', position: [1, 1]),
42
- Vedeu::Char.new(value: ' ', position: [1, 2]),
41
+ Vedeu::Views::Char.new(value: ' ', position: [1, 1]),
42
+ Vedeu::Views::Char.new(value: ' ', position: [1, 2]),
43
43
 
44
44
  ], [
45
- Vedeu::Char.new(value: ' ', position: [2, 1]),
46
- Vedeu::Char.new(value: ' ', position: [2, 2]),
45
+ Vedeu::Views::Char.new(value: ' ', position: [2, 1]),
46
+ Vedeu::Views::Char.new(value: ' ', position: [2, 2]),
47
47
 
48
48
  ]
49
49
  ]
@@ -23,26 +23,26 @@ module Vedeu
23
23
  context 'when compression is enabled' do
24
24
  before { Vedeu.configure { compression(true) } }
25
25
 
26
- context 'when the output is all Vedeu::Char elements' do
26
+ context 'when the output is all Vedeu::Views::Char elements' do
27
27
  let(:output) {
28
28
  [
29
- Vedeu::Char.new(value: 'Y', colour: { foreground: '#ff0000' }),
30
- Vedeu::Char.new(value: 'e', colour: { foreground: '#ff0000' }),
31
- Vedeu::Char.new(value: 's', colour: { foreground: '#ff0000' }),
29
+ Vedeu::Views::Char.new(value: 'Y', colour: { foreground: '#ff0000' }),
30
+ Vedeu::Views::Char.new(value: 'e', colour: { foreground: '#ff0000' }),
31
+ Vedeu::Views::Char.new(value: 's', colour: { foreground: '#ff0000' }),
32
32
  ]
33
33
  }
34
- it 'converts the non-Vedeu::Char elements into String elements' do
34
+ it 'converts the non-Vedeu::Views::Char elements into String elements' do
35
35
  subject.must_equal("\e[38;2;255;0;0mYes")
36
36
  end
37
37
  end
38
38
 
39
- context 'when the output is all Vedeu::Char elements' do
39
+ context 'when the output is all Vedeu::Views::Char elements' do
40
40
  let(:output) {
41
41
  [
42
- Vedeu::Char.new(value: 'a', colour: { foreground: '#ff0000' }),
43
- Vedeu::Char.new(value: 'b', colour: { foreground: '#ff0000' }),
44
- Vedeu::Char.new(value: 'c', colour: { foreground: '#0000ff' }),
45
- Vedeu::Char.new(value: 'd', colour: { foreground: '#0000ff' }),
42
+ Vedeu::Views::Char.new(value: 'a', colour: { foreground: '#ff0000' }),
43
+ Vedeu::Views::Char.new(value: 'b', colour: { foreground: '#ff0000' }),
44
+ Vedeu::Views::Char.new(value: 'c', colour: { foreground: '#0000ff' }),
45
+ Vedeu::Views::Char.new(value: 'd', colour: { foreground: '#0000ff' }),
46
46
  ]
47
47
  }
48
48
  it 'compresses multiple colours and styles where possible' do
@@ -50,15 +50,15 @@ module Vedeu
50
50
  end
51
51
  end
52
52
 
53
- context 'when the output is not all Vedeu::Char elements' do
53
+ context 'when the output is not all Vedeu::Views::Char elements' do
54
54
  let(:output) {
55
55
  [
56
- Vedeu::Char.new(value: 'N'),
56
+ Vedeu::Views::Char.new(value: 'N'),
57
57
  Vedeu::Escape.new(value: "\e[?25l"),
58
- Vedeu::Char.new(value: 't'),
58
+ Vedeu::Views::Char.new(value: 't'),
59
59
  ]
60
60
  }
61
- it 'converts the non-Vedeu::Char elements into String elements' do
61
+ it 'converts the non-Vedeu::Views::Char elements into String elements' do
62
62
  subject.must_equal("N\e[1;1H\e[?25lt")
63
63
  end
64
64
  end
@@ -67,28 +67,28 @@ module Vedeu
67
67
  context 'when compression is not enabled' do
68
68
  before { Vedeu.configure { compression(false) } }
69
69
 
70
- context 'when the output is all Vedeu::Char elements' do
70
+ context 'when the output is all Vedeu::Views::Char elements' do
71
71
  let(:output) {
72
72
  [
73
- Vedeu::Char.new(value: 'Y', colour: { foreground: '#ff0000' }),
74
- Vedeu::Char.new(value: 'e', colour: { foreground: '#ff0000' }),
75
- Vedeu::Char.new(value: 's', colour: { foreground: '#ff0000' }),
73
+ Vedeu::Views::Char.new(value: 'Y', colour: { foreground: '#ff0000' }),
74
+ Vedeu::Views::Char.new(value: 'e', colour: { foreground: '#ff0000' }),
75
+ Vedeu::Views::Char.new(value: 's', colour: { foreground: '#ff0000' }),
76
76
  ]
77
77
  }
78
- it 'converts the non-Vedeu::Char elements into String elements' do
78
+ it 'converts the non-Vedeu::Views::Char elements into String elements' do
79
79
  subject.must_equal(
80
80
  "\e[38;2;255;0;0mY\e[38;2;255;0;0me\e[38;2;255;0;0ms"
81
81
  )
82
82
  end
83
83
  end
84
84
 
85
- context 'when the output is all Vedeu::Char elements' do
85
+ context 'when the output is all Vedeu::Views::Char elements' do
86
86
  let(:output) {
87
87
  [
88
- Vedeu::Char.new(value: 'a', colour: { foreground: '#ff0000' }),
89
- Vedeu::Char.new(value: 'b', colour: { foreground: '#ff0000' }),
90
- Vedeu::Char.new(value: 'c', colour: { foreground: '#0000ff' }),
91
- Vedeu::Char.new(value: 'd', colour: { foreground: '#0000ff' }),
88
+ Vedeu::Views::Char.new(value: 'a', colour: { foreground: '#ff0000' }),
89
+ Vedeu::Views::Char.new(value: 'b', colour: { foreground: '#ff0000' }),
90
+ Vedeu::Views::Char.new(value: 'c', colour: { foreground: '#0000ff' }),
91
+ Vedeu::Views::Char.new(value: 'd', colour: { foreground: '#0000ff' }),
92
92
  ]
93
93
  }
94
94
  it 'compresses multiple colours and styles where possible' do
@@ -98,15 +98,15 @@ module Vedeu
98
98
  end
99
99
  end
100
100
 
101
- context 'when the output is not all Vedeu::Char elements' do
101
+ context 'when the output is not all Vedeu::Views::Char elements' do
102
102
  let(:output) {
103
103
  [
104
- Vedeu::Char.new(value: 'N'),
104
+ Vedeu::Views::Char.new(value: 'N'),
105
105
  Vedeu::Escape.new(value: "\e[?25l"),
106
- Vedeu::Char.new(value: 't'),
106
+ Vedeu::Views::Char.new(value: 't'),
107
107
  ]
108
108
  }
109
- it 'converts the non-Vedeu::Char elements into String elements' do
109
+ it 'converts the non-Vedeu::Views::Char elements into String elements' do
110
110
  subject.must_equal("N\e[1;1H\e[?25lt")
111
111
  end
112
112
  end
@@ -6,7 +6,7 @@ module Vedeu
6
6
 
7
7
  let(:described) { Vedeu::HTMLChar }
8
8
  let(:instance) { described.new(char, options) }
9
- let(:char) { Vedeu::Char.new(attributes) }
9
+ let(:char) { Vedeu::Views::Char.new(attributes) }
10
10
  let(:options) {
11
11
  {
12
12
  start_tag: '<td',
@@ -23,7 +23,7 @@ module Vedeu
23
23
  }
24
24
  let(:border) {}
25
25
  let(:colour) {}
26
- let(:parent) { Vedeu::Line.new(colour: parent_colour) }
26
+ let(:parent) { Vedeu::Views::Line.new(colour: parent_colour) }
27
27
  let(:parent_colour) {}
28
28
  let(:_value) {}
29
29
 
@@ -46,24 +46,20 @@ module Vedeu
46
46
 
47
47
  describe '#to_s' do
48
48
  let(:line) {
49
- Vedeu::Line.new(streams: [],
50
- parent: Vedeu::Interface.new,
51
- colour: line_colour,
52
- style: Vedeu::Style.new('normal'))
53
- }
54
- let(:line_colour) {
55
- Vedeu::Colour.new(foreground: '#00ff00', background: '#000000')
49
+ Vedeu::Views::Line.new(streams: [],
50
+ parent: Vedeu::Interface.new,
51
+ colour: Vedeu::Colour.new(foreground: '#00ff00',
52
+ background: '#000000'),
53
+ style: Vedeu::Style.new('normal'))
56
54
  }
57
55
  let(:stream) {
58
- Vedeu::Stream.new(value: stream_value,
59
- parent: line,
60
- colour: stream_colour,
61
- style: stream_style)
56
+ Vedeu::Views::Stream.new(value: stream_value,
57
+ parent: line,
58
+ colour: Vedeu::Colour.new(foreground: '#ff0000',
59
+ background: '#000000'),
60
+ style: stream_style)
62
61
  }
63
62
  let(:stream_value) { 'Some text' }
64
- let(:stream_colour) {
65
- Vedeu::Colour.new(foreground: '#ff0000', background: '#000000')
66
- }
67
63
  let(:stream_style) { Vedeu::Style.new(:underline) }
68
64
 
69
65
  it { includer.must_respond_to(:to_str) }
@@ -28,10 +28,26 @@ module Vedeu
28
28
  context 'when there is output' do
29
29
  let(:output) {
30
30
  [
31
- Vedeu::Char.new(value: 't', colour: { background: '#ff0000', foreground: '#ffffff' }),
32
- Vedeu::Char.new(value: 'e', colour: { background: '#ffff00', foreground: '#000000' }),
33
- Vedeu::Char.new(value: 's', colour: { background: '#00ff00', foreground: '#000000' }),
34
- Vedeu::Char.new(value: 't', colour: { background: '#00ffff', foreground: '#000000' }),
31
+ Vedeu::Views::Char.new(value: 't',
32
+ colour: {
33
+ background: '#ff0000',
34
+ foreground: '#ffffff'
35
+ }),
36
+ Vedeu::Views::Char.new(value: 'e',
37
+ colour: {
38
+ background: '#ffff00',
39
+ foreground: '#000000'
40
+ }),
41
+ Vedeu::Views::Char.new(value: 's',
42
+ colour: {
43
+ background: '#00ff00',
44
+ foreground: '#000000'
45
+ }),
46
+ Vedeu::Views::Char.new(value: 't',
47
+ colour: {
48
+ background: '#00ffff',
49
+ foreground: '#000000'
50
+ }),
35
51
  ]
36
52
  }
37
53