vedeu 0.8.4 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/TODO.md +4 -0
  3. data/docs/dsl.md +1 -11
  4. data/docs/dsl/by_method/geometry/align.md +1 -0
  5. data/docs/dsl/by_method/geometry/align_bottom.md +40 -0
  6. data/docs/dsl/by_method/geometry/align_centre.md +40 -0
  7. data/docs/dsl/by_method/geometry/align_left.md +40 -0
  8. data/docs/dsl/by_method/geometry/align_middle.md +40 -0
  9. data/docs/dsl/by_method/geometry/align_right.md +40 -0
  10. data/docs/dsl/by_method/geometry/align_top.md +40 -0
  11. data/docs/dsl/by_method/geometry/columns.md +1 -0
  12. data/docs/dsl/by_method/geometry/height.md +0 -0
  13. data/docs/dsl/by_method/geometry/horizontal_alignment.md +1 -0
  14. data/docs/dsl/by_method/geometry/rows.md +1 -0
  15. data/docs/dsl/by_method/geometry/vertical_alignment.md +1 -0
  16. data/docs/dsl/by_method/geometry/width.md +0 -0
  17. data/docs/dsl/by_method/geometry/x.md +1 -0
  18. data/docs/dsl/by_method/geometry/xn.md +1 -0
  19. data/docs/dsl/by_method/geometry/y.md +1 -0
  20. data/docs/dsl/by_method/geometry/yn.md +1 -0
  21. data/docs/dsl/by_method/render.md +5 -1
  22. data/docs/dsl/by_method/renders.md +31 -1
  23. data/docs/dsl/by_method/view.md +26 -0
  24. data/docs/dsl/by_method/view/stream.md +18 -0
  25. data/docs/dsl/by_method/views.md +32 -1
  26. data/docs/events/by_name/set_border_caption.md +2 -4
  27. data/docs/events/by_name/set_border_title.md +2 -4
  28. data/examples/views/empty_template.rb +0 -4
  29. data/examples/views/full_screen.rb +30 -5
  30. data/examples/views/misc_view.rb +464 -0
  31. data/examples/views/wordwrap.rb +72 -0
  32. data/examples/views/wordwrap.txt +8 -0
  33. data/integrations/dsl_app_021.rb +127 -0
  34. data/integrations/dsl_app_022.rb +133 -0
  35. data/integrations/expected/342_streams.out +1 -1
  36. data/integrations/expected/dsl_app_001.out +1 -1
  37. data/integrations/expected/dsl_app_002.out +1 -1
  38. data/integrations/expected/dsl_app_003.out +1 -1
  39. data/integrations/expected/dsl_app_004.out +1 -1
  40. data/integrations/expected/dsl_app_005.out +1 -1
  41. data/integrations/expected/dsl_app_006.out +1 -1
  42. data/integrations/expected/dsl_app_007.out +1 -1
  43. data/integrations/expected/dsl_app_008.out +1 -1
  44. data/integrations/expected/dsl_app_009.out +1 -1
  45. data/integrations/expected/dsl_app_010.out +1 -1
  46. data/integrations/expected/dsl_app_011.out +1 -1
  47. data/integrations/expected/dsl_app_012.out +1 -1
  48. data/integrations/expected/dsl_app_013.out +1 -1
  49. data/integrations/expected/dsl_app_014.out +1 -1
  50. data/integrations/expected/dsl_app_015.out +1 -1
  51. data/integrations/expected/dsl_app_016.out +1 -1
  52. data/integrations/expected/dsl_app_021.out +1 -0
  53. data/integrations/expected/dsl_app_022.out +1 -0
  54. data/integrations/support/test_interface_021.rb +7 -0
  55. data/integrations/support/test_interface_022.rb +15 -0
  56. data/lib/vedeu/all.rb +4 -2
  57. data/lib/vedeu/borders/border.rb +22 -6
  58. data/lib/vedeu/borders/repository.rb +4 -8
  59. data/lib/vedeu/buffers/buffer.rb +9 -6
  60. data/lib/vedeu/buffers/empty.rb +26 -23
  61. data/lib/vedeu/buffers/view.rb +44 -41
  62. data/lib/vedeu/cells/cursor.rb +0 -2
  63. data/lib/vedeu/cells/empty.rb +0 -1
  64. data/lib/vedeu/cells/escape.rb +0 -2
  65. data/lib/vedeu/coercers/alignment.rb +58 -8
  66. data/lib/vedeu/coercers/horizontal_alignment.rb +13 -9
  67. data/lib/vedeu/coercers/vertical_alignment.rb +13 -8
  68. data/lib/vedeu/common.rb +1 -1
  69. data/lib/vedeu/configuration/configuration.rb +41 -3
  70. data/lib/vedeu/cursors/coordinate.rb +1 -3
  71. data/lib/vedeu/cursors/cursor.rb +2 -6
  72. data/lib/vedeu/dsl/all.rb +1 -2
  73. data/lib/vedeu/dsl/border.rb +6 -6
  74. data/lib/vedeu/dsl/elements.rb +2 -2
  75. data/lib/vedeu/dsl/geometry.rb +7 -7
  76. data/lib/vedeu/dsl/{string → helpers}/align.rb +0 -0
  77. data/lib/vedeu/dsl/helpers/all.rb +17 -0
  78. data/lib/vedeu/dsl/{attributes.rb → helpers/attributes.rb} +0 -0
  79. data/lib/vedeu/dsl/{string → helpers}/text.rb +0 -0
  80. data/lib/vedeu/dsl/{string → helpers}/truncate.rb +0 -0
  81. data/lib/vedeu/dsl/{string → helpers}/wordwrap.rb +0 -0
  82. data/lib/vedeu/dsl/view.rb +11 -19
  83. data/lib/vedeu/dsl/views.rb +16 -106
  84. data/lib/vedeu/geometries/all.rb +0 -1
  85. data/lib/vedeu/geometries/area/area.rb +6 -12
  86. data/lib/vedeu/geometries/area/dimension.rb +21 -44
  87. data/lib/vedeu/geometries/dsl/all.rb +0 -1
  88. data/lib/vedeu/geometries/dsl/dsl.rb +22 -31
  89. data/lib/vedeu/geometries/geometry.rb +6 -0
  90. data/lib/vedeu/geometries/position.rb +6 -3
  91. data/lib/vedeu/geometries/repository.rb +1 -1
  92. data/lib/vedeu/input/mouse.rb +1 -0
  93. data/lib/vedeu/logging/log.rb +3 -6
  94. data/lib/vedeu/menus/dsl.rb +4 -5
  95. data/lib/vedeu/output/compressor.rb +11 -1
  96. data/lib/vedeu/output/viewport.rb +59 -59
  97. data/lib/vedeu/presentation/all.rb +1 -2
  98. data/lib/vedeu/presentation/colour.rb +75 -3
  99. data/lib/vedeu/{geometries/positionable.rb → presentation/position.rb} +4 -4
  100. data/lib/vedeu/presentation/presentation.rb +1 -3
  101. data/lib/vedeu/presentation/styles.rb +16 -1
  102. data/lib/vedeu/repositories/all.rb +0 -1
  103. data/lib/vedeu/sentence.rb +91 -0
  104. data/lib/vedeu/support/point.rb +72 -0
  105. data/lib/vedeu/terminal/terminal.rb +11 -53
  106. data/lib/vedeu/version.rb +1 -1
  107. data/lib/vedeu/views/composition.rb +11 -1
  108. data/lib/vedeu/views/default_attributes.rb +2 -0
  109. data/lib/vedeu/views/line.rb +16 -1
  110. data/lib/vedeu/views/stream.rb +16 -1
  111. data/lib/vedeu/views/view.rb +25 -17
  112. data/test/lib/vedeu/borders/border_test.rb +20 -2
  113. data/test/lib/vedeu/buffers/buffer_test.rb +15 -2
  114. data/test/lib/vedeu/buffers/empty_test.rb +51 -18
  115. data/test/lib/vedeu/buffers/view_test.rb +2 -2
  116. data/test/lib/vedeu/coercers/alignment_test.rb +32 -0
  117. data/test/lib/vedeu/coercers/horizontal_alignment_test.rb +16 -0
  118. data/test/lib/vedeu/coercers/vertical_alignment_test.rb +16 -0
  119. data/test/lib/vedeu/cursors/cursor_test.rb +4 -4
  120. data/test/lib/vedeu/cursors/dsl_test.rb +35 -21
  121. data/test/lib/vedeu/dsl/elements_test.rb +94 -2
  122. data/test/lib/vedeu/dsl/{string → helpers}/align_test.rb +0 -0
  123. data/test/lib/vedeu/dsl/{attributes_test.rb → helpers/attributes_test.rb} +0 -0
  124. data/test/lib/vedeu/dsl/{string → helpers}/text_test.rb +0 -0
  125. data/test/lib/vedeu/dsl/{string → helpers}/truncate_test.rb +0 -0
  126. data/test/lib/vedeu/dsl/{string → helpers}/wordwrap_test.rb +0 -0
  127. data/test/lib/vedeu/dsl/view_test.rb +22 -4
  128. data/test/lib/vedeu/dsl/views_test.rb +8 -5
  129. data/test/lib/vedeu/geometries/dsl/dsl_test.rb +2 -159
  130. data/test/lib/vedeu/geometries/position_test.rb +118 -60
  131. data/test/lib/vedeu/input/mouse_test.rb +1 -6
  132. data/test/lib/vedeu/logging/log_test.rb +14 -3
  133. data/test/lib/vedeu/presentation/colour_test.rb +77 -0
  134. data/test/lib/vedeu/{geometries/positionable_test.rb → presentation/position_test.rb} +4 -4
  135. data/test/lib/vedeu/sentence_test.rb +49 -0
  136. data/test/lib/vedeu/support/point_test.rb +139 -0
  137. data/test/lib/vedeu/terminal/terminal_test.rb +3 -44
  138. data/test/lib/vedeu/views/composition_test.rb +24 -4
  139. data/test/lib/vedeu/views/default_attributes_test.rb +10 -2
  140. data/test/lib/vedeu/views/view_test.rb +8 -15
  141. data/test/support/examples/material_colours_app.rb +0 -6
  142. data/vedeu.gemspec +1 -1
  143. metadata +58 -38
  144. data/examples/views/lines_line_stream.rb +0 -95
  145. data/examples/views/lines_line_streams.rb +0 -75
  146. data/examples/views/lines_line_streams_stream.rb +0 -78
  147. data/examples/views/lines_line_streams_stream_stream.rb +0 -50
  148. data/examples/views/lines_streams.rb +0 -93
  149. data/lib/vedeu/dsl/string/all.rb +0 -16
  150. data/lib/vedeu/geometries/dsl/validator.rb +0 -62
  151. data/lib/vedeu/presentation/background.rb +0 -54
  152. data/lib/vedeu/presentation/foreground.rb +0 -54
  153. data/lib/vedeu/repositories/parent.rb +0 -34
  154. data/test/lib/vedeu/geometries/dsl/validator_test.rb +0 -85
  155. data/test/lib/vedeu/presentation/background_test.rb +0 -74
  156. data/test/lib/vedeu/presentation/foreground_test.rb +0 -75
@@ -10,7 +10,7 @@ module Vedeu
10
10
 
11
11
  let(:described) { Vedeu::Buffers::View }
12
12
  let(:instance) { described.new(attributes) }
13
- let(:_name) { 'Vedeu::Buffers::View' }
13
+ let(:_name) { :vedeu_buffers_view }
14
14
  let(:attributes) {
15
15
  {
16
16
  name: _name,
@@ -27,7 +27,7 @@ module Vedeu
27
27
  context 'when a name is not given' do
28
28
  let(:_name) {}
29
29
 
30
- it { instance.instance_variable_get('@name').must_equal('') }
30
+ it { instance.instance_variable_get('@name').must_equal(nil) }
31
31
  end
32
32
  end
33
33
 
@@ -166,6 +166,38 @@ module Vedeu
166
166
  end
167
167
  end
168
168
 
169
+ describe '#valid_horizontal?' do
170
+ subject { instance.valid_horizontal? }
171
+
172
+ context 'when the value is valid' do
173
+ let(:_value) { :left }
174
+
175
+ it { subject.must_equal(true) }
176
+ end
177
+
178
+ context 'when the value is not valid' do
179
+ let(:_value) { :top }
180
+
181
+ it { subject.must_equal(false) }
182
+ end
183
+ end
184
+
185
+ describe '#valid_vertical?' do
186
+ subject { instance.valid_vertical? }
187
+
188
+ context 'when the value is valid' do
189
+ let(:_value) { :top }
190
+
191
+ it { subject.must_equal(true) }
192
+ end
193
+
194
+ context 'when the value is not valid' do
195
+ let(:_value) { :left }
196
+
197
+ it { subject.must_equal(false) }
198
+ end
199
+ end
200
+
169
201
  describe '#value' do
170
202
  subject { instance.value }
171
203
 
@@ -12,6 +12,22 @@ module Vedeu
12
12
  let(:instance) { described.new(_value) }
13
13
  let(:_value) {}
14
14
 
15
+ describe '#validate' do
16
+ subject { instance.validate }
17
+
18
+ context 'when the value is valid' do
19
+ let(:_value) { :none }
20
+
21
+ it { subject.must_equal(instance) }
22
+ end
23
+
24
+ context 'when the value is not valid' do
25
+ let(:_value) { :top }
26
+
27
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
28
+ end
29
+ end
30
+
15
31
  describe '#value' do
16
32
  subject { described.coerce(_value).value }
17
33
 
@@ -12,6 +12,22 @@ module Vedeu
12
12
  let(:instance) { described.new(_value) }
13
13
  let(:_value) {}
14
14
 
15
+ describe '#validate' do
16
+ subject { instance.validate }
17
+
18
+ context 'when the value is valid' do
19
+ let(:_value) { :none }
20
+
21
+ it { subject.must_equal(instance) }
22
+ end
23
+
24
+ context 'when the value is not valid' do
25
+ let(:_value) { :left }
26
+
27
+ it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
28
+ end
29
+ end
30
+
15
31
  describe '#value' do
16
32
  subject { described.coerce(_value).value }
17
33
 
@@ -336,7 +336,7 @@ module Vedeu
336
336
  describe '#x' do
337
337
  subject { instance.x }
338
338
 
339
- context 'when x is less than tx' do
339
+ context 'when x is less than 1' do
340
340
  let(:x) { -2 }
341
341
 
342
342
  it { subject.must_equal(6) }
@@ -360,7 +360,7 @@ module Vedeu
360
360
  end
361
361
  end
362
362
 
363
- context 'when x is more than txn' do
363
+ context 'when x is more than the terminal width' do
364
364
  let(:x) { 47 }
365
365
 
366
366
  it { subject.must_equal(34) }
@@ -388,7 +388,7 @@ module Vedeu
388
388
  describe '#y' do
389
389
  subject { instance.y }
390
390
 
391
- context 'when y is less than ty' do
391
+ context 'when y is less than 1' do
392
392
  let(:y) { -2 }
393
393
 
394
394
  it { subject.must_equal(6) }
@@ -412,7 +412,7 @@ module Vedeu
412
412
  end
413
413
  end
414
414
 
415
- context 'when y is more than tyn' do
415
+ context 'when y is more than the terminal height' do
416
416
  let(:y) { 17 }
417
417
 
418
418
  it { subject.must_equal(9) }
@@ -10,6 +10,16 @@ module Vedeu
10
10
 
11
11
  include Vedeu::Cursors::DSL
12
12
 
13
+ attr_accessor :cursor_visible
14
+
15
+ def model
16
+ self
17
+ end
18
+
19
+ def name
20
+ :actinium
21
+ end
22
+
13
23
  end # DSLTestClass
14
24
 
15
25
  describe DSL do
@@ -39,14 +49,18 @@ module Vedeu
39
49
 
40
50
  # describe '#cursor' do
41
51
  # let(:_value) {}
52
+ # let(:cursor) { Vedeu::Cursors::Cursor.new(name: :actinium) }
42
53
 
43
- # before { Vedeu.cursors.reset }
54
+ # before do
55
+ # Vedeu.cursors.reset!
56
+ # Vedeu.cursors.stubs(:by_name).returns(cursor)
57
+ # end
44
58
 
45
59
  # subject { instance.cursor(_value) }
46
60
 
47
61
  # it do
48
62
  # subject
49
- # Vedeu.cursors.find('actinium').visible?.must_equal(false)
63
+ # Vedeu.cursors.by_name(:actinium).visible?.must_equal(false)
50
64
  # end
51
65
 
52
66
  # context 'when the value is false' do
@@ -54,7 +68,7 @@ module Vedeu
54
68
 
55
69
  # it do
56
70
  # subject
57
- # Vedeu.cursors.find('actinium').visible?.must_equal(false)
71
+ # Vedeu.cursors.by_name(:actinium).visible?.must_equal(false)
58
72
  # end
59
73
  # end
60
74
 
@@ -63,7 +77,7 @@ module Vedeu
63
77
 
64
78
  # it do
65
79
  # subject
66
- # Vedeu.cursors.find('actinium').visible?.must_equal(false)
80
+ # Vedeu.cursors.by_name(:actinium).visible?.must_equal(false)
67
81
  # end
68
82
  # end
69
83
 
@@ -72,7 +86,7 @@ module Vedeu
72
86
 
73
87
  # it do
74
88
  # subject
75
- # Vedeu.cursors.find('actinium').visible?.must_equal(true)
89
+ # Vedeu.cursors.by_name(:actinium).visible?.must_equal(true)
76
90
  # end
77
91
  # end
78
92
 
@@ -81,7 +95,7 @@ module Vedeu
81
95
 
82
96
  # it do
83
97
  # subject
84
- # Vedeu.cursors.find('actinium').visible?.must_equal(true)
98
+ # Vedeu.cursors.by_name(:actinium).visible?.must_equal(true)
85
99
  # end
86
100
  # end
87
101
 
@@ -90,28 +104,28 @@ module Vedeu
90
104
 
91
105
  # it do
92
106
  # subject
93
- # Vedeu.cursors.find('actinium').visible?.must_equal(true)
107
+ # Vedeu.cursors.by_name(:actinium).visible?.must_equal(true)
94
108
  # end
95
109
  # end
96
110
  # end
97
111
 
98
- # describe '#cursor!' do
99
- # subject { instance.cursor! }
112
+ describe '#cursor!' do
113
+ subject { instance.cursor! }
100
114
 
101
- # it do
102
- # subject
103
- # Vedeu.cursors.find('actinium').visible?.must_equal(true)
104
- # end
105
- # end
115
+ it do
116
+ subject
117
+ Vedeu.cursors.by_name(:actinium).visible?.must_equal(true)
118
+ end
119
+ end
106
120
 
107
- # describe '#no_cursor!' do
108
- # subject { instance.no_cursor! }
121
+ describe '#no_cursor!' do
122
+ subject { instance.no_cursor! }
109
123
 
110
- # it do
111
- # subject
112
- # Vedeu.cursors.find('actinium').visible?.must_equal(false)
113
- # end
114
- # end
124
+ it do
125
+ subject
126
+ Vedeu.cursors.by_name(:actinium).visible?.must_equal(false)
127
+ end
128
+ end
115
129
 
116
130
  end # DSL
117
131
 
@@ -27,8 +27,68 @@ module Vedeu
27
27
  let(:including_instance) { including_described.new(model) }
28
28
  let(:model) {}
29
29
 
30
+ describe '#centre' do
31
+ let(:_value) {}
32
+ let(:opts) {
33
+ {
34
+
35
+ }
36
+ }
37
+
38
+ subject { including_instance.centre(_value, opts) }
39
+
40
+ context 'when a model exists' do
41
+ end
42
+
43
+ context 'when a model does not exist' do
44
+ it { proc { subject }.must_raise(Vedeu::Error::Fatal) }
45
+ end
46
+ end
47
+
48
+ describe '#center' do
49
+ it { including_instance.must_respond_to(:center) }
50
+ end
51
+
52
+ describe '#left' do
53
+ let(:_value) {}
54
+ let(:opts) {
55
+ {
56
+
57
+ }
58
+ }
59
+
60
+ subject { including_instance.left(_value, opts) }
61
+
62
+ context 'when a model exists' do
63
+ end
64
+
65
+ context 'when a model does not exist' do
66
+ it { proc { subject }.must_raise(Vedeu::Error::Fatal) }
67
+ end
68
+ end
69
+
70
+ describe '#right' do
71
+ let(:_value) {}
72
+ let(:opts) {
73
+ {
74
+
75
+ }
76
+ }
77
+
78
+ subject { including_instance.right(_value, opts) }
79
+
80
+ context 'when a model exists' do
81
+ end
82
+
83
+ context 'when a model does not exist' do
84
+ it { proc { subject }.must_raise(Vedeu::Error::Fatal) }
85
+ end
86
+ end
87
+
30
88
  describe '#lines' do
31
- subject { including_instance.lines { } }
89
+ let(:opts) { {} }
90
+
91
+ subject { including_instance.lines(opts) { } }
32
92
 
33
93
  context 'when the block is given' do
34
94
  context 'when a model exists' do
@@ -45,6 +105,12 @@ module Vedeu
45
105
 
46
106
  it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
47
107
  end
108
+
109
+ context 'when the opts parameter is not given' do
110
+ subject { including_instance.lines { } }
111
+
112
+ # @todo Add more tests.
113
+ end
48
114
  end
49
115
 
50
116
  describe '#line' do
@@ -70,7 +136,9 @@ module Vedeu
70
136
  end
71
137
 
72
138
  describe '#streams' do
73
- subject { including_instance.streams { } }
139
+ let(:opts) { {} }
140
+
141
+ subject { including_instance.streams(opts) { } }
74
142
 
75
143
  context 'when the block is given' do
76
144
  context 'when a model exists' do
@@ -89,6 +157,12 @@ module Vedeu
89
157
 
90
158
  it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
91
159
  end
160
+
161
+ context 'when the opts parameter is not given' do
162
+ subject { including_instance.streams { } }
163
+
164
+ # @todo Add more tests.
165
+ end
92
166
  end
93
167
 
94
168
  describe '#stream' do
@@ -113,6 +187,24 @@ module Vedeu
113
187
  end
114
188
  end
115
189
 
190
+ describe '#text' do
191
+ let(:_value) {}
192
+ let(:opts) {
193
+ {
194
+
195
+ }
196
+ }
197
+
198
+ subject { including_instance.text(_value, opts) }
199
+
200
+ context 'when a model exists' do
201
+ end
202
+
203
+ context 'when a model does not exist' do
204
+ it { proc { subject }.must_raise(Vedeu::Error::Fatal) }
205
+ end
206
+ end
207
+
116
208
  end # Elements
117
209
 
118
210
  end # DSL
File without changes
@@ -14,17 +14,35 @@ module Vedeu
14
14
  let(:client) {}
15
15
 
16
16
  describe '#view' do
17
+ let(:_name) { :dysprosium }
18
+
17
19
  subject {
18
- instance.view('dysprosium') do
20
+ instance.view(_name) do
19
21
  # ...
20
22
  end
21
23
  }
22
24
 
23
- it { subject.must_be_instance_of(Vedeu::Views::Views) }
24
- it { subject[0].must_be_instance_of(Vedeu::Views::View) }
25
+ context 'when the block is given' do
26
+ context 'when the name is given' do
27
+ it { subject.must_be_instance_of(Vedeu::Views::Views) }
28
+ it { subject[0].must_be_instance_of(Vedeu::Views::View) }
29
+ end
30
+
31
+ context 'when the name is not given' do
32
+ let(:_name) {}
33
+
34
+ it do
35
+ proc { subject }.must_raise(Vedeu::Error::MissingRequired)
36
+ end
37
+ end
38
+ end
25
39
 
26
40
  context 'when the block is not given' do
27
- it { proc { instance.view }.must_raise(Vedeu::Error::RequiresBlock) }
41
+ subject { instance.view(_name) }
42
+
43
+ it do
44
+ proc { subject }.must_raise(Vedeu::Error::RequiresBlock)
45
+ end
28
46
  end
29
47
  end
30
48
 
@@ -22,8 +22,7 @@ module Vedeu
22
22
  end
23
23
  }
24
24
 
25
- it { described.must_respond_to(:render) }
26
- it { subject.must_be_instance_of(Array) }
25
+ it { subject.must_be_instance_of(Vedeu::Views::Composition) }
27
26
 
28
27
  context 'when the block is not given' do
29
28
  subject { described.renders }
@@ -32,7 +31,9 @@ module Vedeu
32
31
  end
33
32
 
34
33
  context 'when the block is given' do
35
- it { subject.must_equal([]) }
34
+ context 'but no views were defined' do
35
+ it { subject.views?.must_equal(false) }
36
+ end
36
37
  end
37
38
  end
38
39
 
@@ -43,7 +44,7 @@ module Vedeu
43
44
  end
44
45
  }
45
46
 
46
- it { subject.must_be_instance_of(Array) }
47
+ it { subject.must_be_instance_of(Vedeu::Views::Composition) }
47
48
 
48
49
  context 'when the block is not given' do
49
50
  subject { described.views }
@@ -52,7 +53,9 @@ module Vedeu
52
53
  end
53
54
 
54
55
  context 'when the block is given' do
55
- it { subject.must_equal([]) }
56
+ context 'but no views were defined' do
57
+ it { subject.views?.must_equal(false) }
58
+ end
56
59
  end
57
60
  end
58
61