vedeu 0.4.40 → 0.4.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +23 -28
  3. data/Guardfile +0 -8
  4. data/Rakefile +0 -6
  5. data/docs/applications.md +0 -1
  6. data/docs/dsl.md +7 -12
  7. data/examples/borders_app.rb +5 -0
  8. data/examples/configuration_app.rb +5 -0
  9. data/examples/drb_app.rb +5 -0
  10. data/examples/geometry_app.rb +5 -0
  11. data/examples/material_colours_app.rb +5 -0
  12. data/examples/panel_app.rb +5 -0
  13. data/examples/typed_commands/typed_commands_app.rb +5 -0
  14. data/examples/view_templates_app/view_templates_app.rb +5 -0
  15. data/lib/vedeu/api.rb +8 -8
  16. data/lib/vedeu/application/all.rb +3 -0
  17. data/lib/vedeu/application/application_controller.rb +4 -0
  18. data/lib/vedeu/application/application_helper.rb +4 -0
  19. data/lib/vedeu/application/application_view.rb +6 -0
  20. data/lib/vedeu/application/controller.rb +23 -0
  21. data/lib/vedeu/application/helper.rb +23 -0
  22. data/lib/vedeu/application/view.rb +23 -0
  23. data/lib/vedeu/application.rb +1 -3
  24. data/lib/vedeu/bindings.rb +64 -65
  25. data/lib/vedeu/bootstrap.rb +2 -0
  26. data/lib/vedeu/buffers/buffer.rb +44 -0
  27. data/lib/vedeu/configuration/api.rb +44 -119
  28. data/lib/vedeu/configuration/cli.rb +2 -0
  29. data/lib/vedeu/configuration/configuration.rb +4 -20
  30. data/lib/vedeu/cursor/cursor.rb +7 -7
  31. data/lib/vedeu/cursor/reposition.rb +2 -0
  32. data/lib/vedeu/dsl/border.rb +58 -2
  33. data/lib/vedeu/dsl/composition.rb +5 -3
  34. data/lib/vedeu/dsl/geometry.rb +14 -5
  35. data/lib/vedeu/dsl/group.rb +2 -0
  36. data/lib/vedeu/dsl/interface.rb +23 -3
  37. data/lib/vedeu/dsl/keymap.rb +11 -6
  38. data/lib/vedeu/dsl/line.rb +8 -0
  39. data/lib/vedeu/dsl/menu.rb +3 -1
  40. data/lib/vedeu/dsl/presentation.rb +12 -3
  41. data/lib/vedeu/dsl/text.rb +2 -0
  42. data/lib/vedeu/dsl/view.rb +6 -1
  43. data/lib/vedeu/events/event.rb +3 -1
  44. data/lib/vedeu/generator/application.rb +2 -7
  45. data/lib/vedeu/generator/templates/application/app/models/keymaps/_global_.rb +5 -0
  46. data/lib/vedeu/generator/templates/application/app/views/interfaces/name.erb +10 -0
  47. data/lib/vedeu/generator/view.rb +2 -0
  48. data/lib/vedeu/geometry/geometry.rb +14 -0
  49. data/lib/vedeu/geometry/index_position.rb +1 -0
  50. data/lib/vedeu/geometry/position.rb +5 -0
  51. data/lib/vedeu/input/all.rb +0 -8
  52. data/lib/vedeu/input/input.rb +24 -8
  53. data/lib/vedeu/input/mapper.rb +5 -12
  54. data/lib/vedeu/models/composition.rb +3 -3
  55. data/lib/vedeu/models/escape_char.rb +2 -0
  56. data/lib/vedeu/models/focus.rb +8 -0
  57. data/lib/vedeu/models/interface.rb +1 -1
  58. data/lib/vedeu/models/line.rb +1 -5
  59. data/lib/vedeu/models/menu.rb +4 -2
  60. data/lib/vedeu/models/panel.rb +2 -0
  61. data/lib/vedeu/null/buffer.rb +2 -0
  62. data/lib/vedeu/null/interface.rb +2 -0
  63. data/lib/vedeu/output/background.rb +1 -1
  64. data/lib/vedeu/output/border.rb +5 -157
  65. data/lib/vedeu/output/compressor.rb +2 -0
  66. data/lib/vedeu/output/foreground.rb +1 -1
  67. data/lib/vedeu/output/refresh.rb +5 -9
  68. data/lib/vedeu/output/render_border.rb +230 -0
  69. data/lib/vedeu/output/renderers/escape_sequence.rb +2 -3
  70. data/lib/vedeu/output/renderers/file.rb +10 -9
  71. data/lib/vedeu/repositories/collections/all.rb +4 -4
  72. data/lib/vedeu/repositories/repositories/all.rb +4 -4
  73. data/lib/vedeu/repositories/repositories/{background_colours.rb → backgrounds.rb} +3 -3
  74. data/lib/vedeu/repositories/repositories/cursors.rb +3 -0
  75. data/lib/vedeu/repositories/repositories/{events_repository.rb → events.rb} +5 -5
  76. data/lib/vedeu/repositories/repositories/{foreground_colours.rb → foregrounds.rb} +3 -3
  77. data/lib/vedeu/repositories/repositories/{interfaces_repository.rb → interfaces.rb} +4 -4
  78. data/lib/vedeu/storage/associative_store.rb +2 -0
  79. data/lib/vedeu/storage/conveyor_store.rb +2 -0
  80. data/lib/vedeu/storage/fifo_store.rb +2 -0
  81. data/lib/vedeu/storage/store.rb +7 -7
  82. data/lib/vedeu/support/options.rb +2 -0
  83. data/lib/vedeu/support/terminal.rb +3 -3
  84. data/lib/vedeu/support/timer.rb +2 -0
  85. data/lib/vedeu/support/visibility.rb +2 -0
  86. data/lib/vedeu/templating/directive.rb +2 -0
  87. data/lib/vedeu/templating/preprocessor.rb +2 -0
  88. data/lib/vedeu/version.rb +1 -1
  89. data/lib/vedeu.rb +3 -1
  90. data/test/lib/vedeu/bindings_test.rb +15 -0
  91. data/test/lib/vedeu/buffers/buffer_test.rb +12 -0
  92. data/test/lib/vedeu/configuration/api_test.rb +0 -39
  93. data/test/lib/vedeu/configuration/configuration_test.rb +0 -9
  94. data/test/lib/vedeu/cursor/cursor_test.rb +6 -0
  95. data/test/lib/vedeu/dsl/border_test.rb +12 -0
  96. data/test/lib/vedeu/dsl/composition_test.rb +2 -2
  97. data/test/lib/vedeu/geometry/index_position_test.rb +2 -0
  98. data/test/lib/vedeu/geometry/position_test.rb +6 -0
  99. data/test/lib/vedeu/models/cell_test.rb +16 -8
  100. data/test/lib/vedeu/models/char_test.rb +8 -0
  101. data/test/lib/vedeu/models/composition_test.rb +2 -2
  102. data/test/lib/vedeu/models/interface_test.rb +10 -0
  103. data/test/lib/vedeu/models/line_test.rb +12 -0
  104. data/test/lib/vedeu/models/stream_test.rb +1 -13
  105. data/test/lib/vedeu/output/border_test.rb +1 -0
  106. data/test/lib/vedeu/output/presentation_test.rb +2 -0
  107. data/test/lib/vedeu/output/render_border_test.rb +16 -0
  108. data/test/lib/vedeu/output/renderers/file_test.rb +32 -16
  109. data/test/lib/vedeu/repositories/collection_test.rb +7 -0
  110. data/test/lib/vedeu/repositories/collections/all_test.rb +18 -6
  111. data/test/lib/vedeu/repositories/model_test.rb +33 -7
  112. data/test/lib/vedeu/repositories/repositories/{background_colours_test.rb → backgrounds_test.rb} +3 -3
  113. data/test/lib/vedeu/repositories/repositories/borders_test.rb +7 -17
  114. data/test/lib/vedeu/repositories/repositories/buffers_test.rb +7 -22
  115. data/test/lib/vedeu/repositories/repositories/cursors_test.rb +32 -0
  116. data/test/lib/vedeu/repositories/repositories/events_test.rb +22 -0
  117. data/test/lib/vedeu/repositories/repositories/{foreground_colours_test.rb → foregrounds_test.rb} +3 -3
  118. data/test/lib/vedeu/repositories/repositories/geometries_test.rb +7 -21
  119. data/test/lib/vedeu/repositories/repositories/groups_test.rb +11 -0
  120. data/test/lib/vedeu/repositories/repositories/{interfaces_repositories_test.rb → interfaces_test.rb} +14 -3
  121. data/test/lib/vedeu/repositories/repositories/keymaps_test.rb +10 -1
  122. data/test/lib/vedeu/repositories/repositories/menus_test.rb +10 -1
  123. data/test/lib/vedeu/repositories/repository_test.rb +15 -9
  124. data/test/lib/vedeu/storage/conveyor_store_test.rb +2 -4
  125. data/test/lib/vedeu/support/terminal_test.rb +2 -2
  126. data/test/lib/vedeu/templating/helpers_test.rb +4 -0
  127. data/vedeu.gemspec +0 -2
  128. metadata +20 -54
  129. data/config/cucumber.yml +0 -8
  130. data/features/cli_vedeu.feature +0 -5
  131. data/features/start_stop.feature +0 -27
  132. data/features/step_definitions/vedeu_steps.rb +0 -0
  133. data/features/support/env.rb +0 -15
  134. data/lib/vedeu/generator/templates/application/app/models/keymaps/_system_.rb +0 -7
  135. data/test/lib/vedeu/repositories/repositories/events_repository_test.rb +0 -13
  136. data/test/lib/vedeu/repositories/repositories/interfaces_repository_test.rb +0 -11
@@ -242,45 +242,6 @@ module Vedeu
242
242
  # it { skip }
243
243
  end
244
244
 
245
- describe 'redefining system keys' do
246
- methods_and_keys = {
247
- exit_key: :exit,
248
- focus_next_key: :focus_next,
249
- focus_prev_key: :focus_prev,
250
- mode_switch_key: :mode_switch,
251
- }
252
-
253
- context 'when using an invalid value' do
254
- invalid_params = [nil, '', 123, 'oops']
255
-
256
- methods_and_keys.each do |meth, _|
257
- invalid_params.each do |param|
258
- context 'when the parameter is invalid' do
259
- it {
260
- proc {
261
- Vedeu.configure { send(meth, param) }
262
- }.must_raise(InvalidSyntax)
263
- }
264
- end
265
- end
266
- end
267
- end
268
-
269
- context 'when using a valid value' do
270
- valid_params = ['v', :f1]
271
-
272
- methods_and_keys.each do |meth, key|
273
- valid_params.each do |param|
274
- it 'sets the system key to the desired value' do
275
- configuration = Vedeu.configure { send(meth, param) }
276
-
277
- configuration.system_keys[key].must_equal(param)
278
- end
279
- end
280
- end
281
- end
282
- end
283
-
284
245
  end # API
285
246
 
286
247
  end # Config
@@ -9,15 +9,6 @@ module Vedeu
9
9
  before { Configuration.reset! }
10
10
  after { test_configuration }
11
11
 
12
- describe '.default_system_keys' do
13
- it 'returns the default system keys' do
14
- Configuration.default_system_keys.must_equal(exit: 'q',
15
- focus_next: :tab,
16
- focus_prev: :shift_tab,
17
- mode_switch: :escape,)
18
- end
19
- end
20
-
21
12
  describe '#debug?' do
22
13
  it { described.must_respond_to(:debug) }
23
14
 
@@ -71,6 +71,12 @@ module Vedeu
71
71
  ) }
72
72
  end
73
73
 
74
+ describe '#position' do
75
+ subject { instance.position }
76
+
77
+ it { subject.must_be_instance_of(Vedeu::Position) }
78
+ end
79
+
74
80
  describe '#show_cursor' do
75
81
  subject { instance.show_cursor }
76
82
 
@@ -58,6 +58,18 @@ module Vedeu
58
58
  it { subject.must_equal('D') }
59
59
  end
60
60
 
61
+ describe '#disable!' do
62
+ subject { instance.disable! }
63
+
64
+ it { subject.must_be_instance_of(FalseClass) }
65
+ end
66
+
67
+ describe '#enable!' do
68
+ subject { instance.enable! }
69
+
70
+ it { subject.must_be_instance_of(TrueClass) }
71
+ end
72
+
61
73
  describe '#horizontal' do
62
74
  let(:char) { 'H' }
63
75
 
@@ -24,7 +24,7 @@ module Vedeu
24
24
  end
25
25
  }
26
26
 
27
- it { subject.must_be_instance_of(Vedeu::Interfaces) }
27
+ it { subject.must_be_instance_of(Vedeu::InterfaceCollection) }
28
28
  it { subject.first.must_be_instance_of(Vedeu::Interface) }
29
29
 
30
30
  context 'when the block is not given' do
@@ -69,7 +69,7 @@ module Vedeu
69
69
  with(object, filename).returns(content)
70
70
  end
71
71
 
72
- it { subject.must_be_instance_of(Vedeu::Interfaces) }
72
+ it { subject.must_be_instance_of(Vedeu::InterfaceCollection) }
73
73
  end
74
74
  end
75
75
 
@@ -28,6 +28,8 @@ module Vedeu
28
28
  describe '#[]' do
29
29
  subject { instance.[] }
30
30
 
31
+ it { instance.must_respond_to(:to_position) }
32
+
31
33
  it { subject.must_be_instance_of(Vedeu::Position) }
32
34
  it { subject.y.must_equal(9) }
33
35
  it { subject.x.must_equal(22) }
@@ -88,6 +88,12 @@ module Vedeu
88
88
  it { subject.must_equal([1, 1]) }
89
89
  end
90
90
 
91
+ describe '#to_position' do
92
+ subject { Position.new }
93
+
94
+ it { subject.must_be_instance_of(Vedeu::Position) }
95
+ end
96
+
91
97
  describe '#to_s' do
92
98
  # subject { described.new.to_s }
93
99
 
@@ -22,14 +22,20 @@ module Vedeu
22
22
  let(:y) {}
23
23
 
24
24
  describe '#initialize' do
25
- subject { instance }
26
-
27
- it { subject.must_be_instance_of(described) }
28
- it { subject.instance_variable_get('@colour').must_equal(colour) }
29
- it { subject.instance_variable_get('@style').must_equal(style) }
30
- it { subject.instance_variable_get('@value').must_equal(_value) }
31
- it { subject.instance_variable_get('@x').must_equal(x) }
32
- it { subject.instance_variable_get('@y').must_equal(y) }
25
+ it { instance.must_be_instance_of(described) }
26
+ it { instance.instance_variable_get('@colour').must_equal(colour) }
27
+ it { instance.instance_variable_get('@style').must_equal(style) }
28
+ it { instance.instance_variable_get('@value').must_equal(_value) }
29
+ it { instance.instance_variable_get('@x').must_equal(x) }
30
+ it { instance.instance_variable_get('@y').must_equal(y) }
31
+ end
32
+
33
+ describe 'accessors' do
34
+ it { instance.must_respond_to(:colour) }
35
+ it { instance.must_respond_to(:style) }
36
+ it { instance.must_respond_to(:value) }
37
+ it { instance.must_respond_to(:x) }
38
+ it { instance.must_respond_to(:y) }
33
39
  end
34
40
 
35
41
  describe '#eql?' do
@@ -37,6 +43,8 @@ module Vedeu
37
43
 
38
44
  subject { instance.eql?(other) }
39
45
 
46
+ it { subject.must_respond_to(:==) }
47
+
40
48
  it { subject.must_equal(true) }
41
49
 
42
50
  context 'when different to other' do
@@ -91,6 +91,14 @@ module Vedeu
91
91
  ) }
92
92
  end
93
93
 
94
+ describe '#position' do
95
+ subject { instance.position }
96
+ end
97
+
98
+ describe '#position=' do
99
+ subject { instance.position=(value) }
100
+ end
101
+
94
102
  describe '#to_hash' do
95
103
  subject { instance.to_hash }
96
104
 
@@ -39,13 +39,13 @@ module Vedeu
39
39
 
40
40
  subject { instance.add(child) }
41
41
 
42
- it { subject.must_be_instance_of(Vedeu::Interfaces) }
42
+ it { subject.must_be_instance_of(Vedeu::InterfaceCollection) }
43
43
  end
44
44
 
45
45
  describe '#interfaces' do
46
46
  subject { instance.interfaces }
47
47
 
48
- it { subject.must_be_instance_of(Vedeu::Interfaces) }
48
+ it { subject.must_be_instance_of(Vedeu::InterfaceCollection) }
49
49
  end
50
50
 
51
51
  describe '#parent' do
@@ -67,9 +67,19 @@ module Vedeu
67
67
  it { instance.must_respond_to(:lines=) }
68
68
  end
69
69
 
70
+ describe '#lines' do
71
+ subject { instance.lines }
72
+
73
+ it { instance.must_respond_to(:content) }
74
+ it { instance.must_respond_to(:value) }
75
+ end
76
+
70
77
  describe '#lines?' do
71
78
  subject { instance.lines? }
72
79
 
80
+ it { instance.must_respond_to(:content?) }
81
+ it { instance.must_respond_to(:value?) }
82
+
73
83
  context 'when the interface has content' do
74
84
  let(:lines) { [:line] }
75
85
 
@@ -50,6 +50,16 @@ module Vedeu
50
50
  it { instance.instance_variable_get('@parent').must_equal(parent) }
51
51
  end
52
52
 
53
+ describe 'accessors' do
54
+ it { instance.must_respond_to(:parent) }
55
+ it { instance.must_respond_to(:parent=) }
56
+ it { instance.must_respond_to(:attributes) }
57
+ end
58
+
59
+ describe '#add' do
60
+ subject { instance.add(child) }
61
+ end
62
+
53
63
  describe '#chars' do
54
64
  subject { instance.chars }
55
65
 
@@ -107,6 +117,8 @@ module Vedeu
107
117
  describe '#streams' do
108
118
  subject { instance.streams }
109
119
 
120
+ it { instance.must_respond_to(:value) }
121
+
110
122
  it { subject.must_be_instance_of(Vedeu::Streams) }
111
123
  end
112
124
 
@@ -36,26 +36,14 @@ module Vedeu
36
36
  it { instance.instance_variable_get('@parent').must_equal(parent) }
37
37
  end
38
38
 
39
- describe '#parent' do
39
+ describe 'accessors' do
40
40
  it { instance.must_respond_to(:parent) }
41
- end
42
-
43
- describe '#parent=' do
44
41
  it { instance.must_respond_to(:parent=) }
45
- end
46
-
47
- describe '#value' do
48
42
  it { instance.must_respond_to(:value) }
49
43
  it { instance.must_respond_to(:content) }
50
44
  it { instance.must_respond_to(:data) }
51
45
  it { instance.must_respond_to(:text) }
52
- end
53
-
54
- describe '#value=' do
55
46
  it { instance.must_respond_to(:value=) }
56
- end
57
-
58
- describe '#attributes' do
59
47
  it { instance.must_respond_to(:attributes) }
60
48
  end
61
49
 
@@ -108,6 +108,7 @@ module Vedeu
108
108
  it { instance.must_respond_to(:vertical=) }
109
109
  it { instance.must_respond_to(:name) }
110
110
  it { instance.must_respond_to(:enabled) }
111
+ it { instance.must_respond_to(:enabled=) }
111
112
  it { instance.must_respond_to(:enabled?) }
112
113
  end
113
114
 
@@ -158,6 +158,8 @@ module Vedeu
158
158
  }
159
159
  let(:stream_style) { Style.new(:underline) }
160
160
 
161
+ it { receiver.must_respond_to(:to_str) }
162
+
161
163
  it 'returns output' do
162
164
  stream.to_s.must_equal(
163
165
  # - stream colour
@@ -0,0 +1,16 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ describe RenderBorder do
6
+
7
+ let(:described) { Vedeu::RenderBorder }
8
+ let(:instance) { described.new(border) }
9
+ let(:border) {
10
+ Vedeu.border 'Vedeu::RenderBorder' do
11
+ end
12
+ }
13
+
14
+ end # RenderBorder
15
+
16
+ end # Vedeu
@@ -8,13 +8,15 @@ module Vedeu
8
8
 
9
9
  let(:described) { Vedeu::Renderers::File }
10
10
  let(:instance) { described.new(output, options) }
11
- let(:output) {}
11
+ let(:output) { 'Some content...' }
12
12
  let(:options) {
13
13
  {
14
- timestamp: timestamp
14
+ filename: filename,
15
+ timestamp: timestamp,
15
16
  }
16
17
  }
17
- let(:timestamp) { true }
18
+ let(:filename) { 'out' }
19
+ let(:timestamp) { false }
18
20
 
19
21
  describe '#initialize' do
20
22
  it { instance.must_be_instance_of(described) }
@@ -27,26 +29,40 @@ module Vedeu
27
29
  end
28
30
 
29
31
  describe '#render' do
30
- let(:_time) { Time.new(2015, 4, 12, 20, 05) }
31
-
32
- before { File.stubs(:open) }
32
+ let(:_time) { Time.new(2015, 4, 12, 20, 05, 00, "+01:00") }
33
33
 
34
34
  subject { instance.render }
35
35
 
36
- # it { subject.must_be_instance_of(String) }
36
+ it { subject.must_be_instance_of(String) }
37
+
38
+ context 'when the filename option is not set' do
39
+ context 'when the timestamp option is not set' do
40
+ it {
41
+ ::File.expects(:open).with('/tmp/out', 'w')
42
+ subject
43
+ }
44
+ end
45
+
46
+ context 'when the timestamp option is set' do
47
+ let(:timestamp) { true }
37
48
 
38
- # it { skip }
39
- # context 'when the timestamp option is true' do
40
- # before { Time.stubs(:now).returns(_time) }
49
+ before { Time.stubs(:now).returns(_time) }
41
50
 
42
- # it { File.expects(:open).with('/tmp/out_1428865500.0', 'w'); subject }
43
- # end
51
+ it {
52
+ ::File.expects(:open).with('/tmp/out_1428865500.0', 'w')
53
+ subject
54
+ }
55
+ end
56
+ end
44
57
 
45
- # context 'when the timestamp option is false' do
46
- # let(:timestamp) { false }
58
+ context 'when the filename option is set' do
59
+ let(:filename) { 'some_name' }
47
60
 
48
- # it { File.expects(:open).with('/tmp/out', 'w'); subject }
49
- # end
61
+ it {
62
+ ::File.expects(:open).with('/tmp/some_name', 'w')
63
+ subject
64
+ }
65
+ end
50
66
  end
51
67
 
52
68
  end # File
@@ -26,6 +26,12 @@ module Vedeu
26
26
  it { instance.must_respond_to(:name=) }
27
27
  end
28
28
 
29
+ describe '.coerce' do
30
+ subject { described.coerce(collection, parent, model_name) }
31
+
32
+ # it { skip }
33
+ end
34
+
29
35
  describe '#[]' do
30
36
  let(:collection) { [:hydrogen, :helium, :lithium, :beryllium] }
31
37
  let(:_value) { 1..2 }
@@ -39,6 +45,7 @@ module Vedeu
39
45
  describe '#add' do
40
46
  subject { instance.add(:hydrogen) }
41
47
 
48
+ it { instance.must_respond_to(:<<) }
42
49
  it { subject.must_be_instance_of(Collection) }
43
50
  it { subject.all.must_equal([:hydrogen]) }
44
51
 
@@ -7,39 +7,47 @@ module Vedeu
7
7
  let(:described) { Vedeu::Chars }
8
8
  let(:instance) { described.new }
9
9
 
10
+ it { described.superclass.must_equal(Vedeu::Collection) }
11
+
10
12
  describe '#initialize' do
11
13
  it { instance.must_be_instance_of(described) }
12
14
  end
13
15
 
14
16
  end # Chars
15
17
 
16
- describe Events do
18
+ describe EventCollection do
17
19
 
18
- let(:described) { Vedeu::Events }
20
+ let(:described) { Vedeu::EventCollection }
19
21
  let(:instance) { described.new }
20
22
 
23
+ it { described.superclass.must_equal(Vedeu::Collection) }
24
+
21
25
  describe '#initialize' do
22
26
  it { instance.must_be_instance_of(described) }
23
27
  end
24
28
 
25
- end # Events
29
+ end # EventCollection
26
30
 
27
- describe Interfaces do
31
+ describe InterfaceCollection do
28
32
 
29
- let(:described) { Vedeu::Interfaces }
33
+ let(:described) { Vedeu::InterfaceCollection }
30
34
  let(:instance) { described.new }
31
35
 
36
+ it { described.superclass.must_equal(Vedeu::Collection) }
37
+
32
38
  describe '#initialize' do
33
39
  it { instance.must_be_instance_of(described) }
34
40
  end
35
41
 
36
- end # Interfaces
42
+ end # InterfaceCollection
37
43
 
38
44
  describe Keys do
39
45
 
40
46
  let(:described) { Vedeu::Keys }
41
47
  let(:instance) { described.new }
42
48
 
49
+ it { described.superclass.must_equal(Vedeu::Collection) }
50
+
43
51
  describe '#initialize' do
44
52
  it { instance.must_be_instance_of(described) }
45
53
  end
@@ -51,6 +59,8 @@ module Vedeu
51
59
  let(:described) { Vedeu::Lines }
52
60
  let(:instance) { described.new }
53
61
 
62
+ it { described.superclass.must_equal(Vedeu::Collection) }
63
+
54
64
  describe '#initialize' do
55
65
  it { instance.must_be_instance_of(described) }
56
66
  end
@@ -62,6 +72,8 @@ module Vedeu
62
72
  let(:described) { Vedeu::Streams }
63
73
  let(:instance) { described.new }
64
74
 
75
+ it { described.superclass.must_equal(Vedeu::Collection) }
76
+
65
77
  describe '#initialize' do
66
78
  it { instance.must_be_instance_of(described) }
67
79
  end
@@ -22,23 +22,49 @@ module Vedeu
22
22
  end # DSL
23
23
 
24
24
  describe Model do
25
- let(:model_instance) { ModelTestClass.new(attributes) }
25
+
26
+ let(:described) { ModelTestClass }
27
+ let(:instance) { described.new(attributes) }
26
28
  let(:attributes) {
27
29
  {
28
30
  name: 'hydrogen'
29
31
  }
30
32
  }
31
33
 
32
- describe '#repository' do
33
- it { model_instance.must_respond_to(:repository) }
34
+ describe 'accessors' do
35
+ it { instance.must_respond_to(:repository) }
36
+ it { instance.must_respond_to(:repository=) }
37
+ end
38
+
39
+ describe '.build' do
40
+ let(:attributes) {}
41
+
42
+ subject { described.build(attributes) { } }
43
+
44
+ # it { skip }
45
+ end
46
+
47
+ describe '.child' do
48
+ let(:klass) {}
49
+
50
+ subject { described.child(klass) }
51
+
52
+ it { described.must_respond_to(:member) }
53
+ it { described.must_respond_to(:collection) }
54
+
55
+ # it { skip }
34
56
  end
35
57
 
36
- describe '#repository=' do
37
- it { model_instance.must_respond_to(:repository=) }
58
+ describe '.repository' do
59
+ let(:klass) {}
60
+
61
+ subject { described.repository(klass) }
62
+
63
+ # it { skip }
38
64
  end
39
65
 
40
66
  describe '#deputy' do
41
- subject { model_instance.deputy }
67
+ subject { instance.deputy }
42
68
 
43
69
  it 'returns the DSL instance' do
44
70
  subject.must_be_instance_of(DSL::ModelTestClass)
@@ -46,7 +72,7 @@ module Vedeu
46
72
  end
47
73
 
48
74
  describe '#store' do
49
- subject { model_instance.store }
75
+ subject { instance.store }
50
76
 
51
77
  it 'returns the model' do
52
78
  subject.must_be_instance_of(ModelTestClass)
@@ -2,9 +2,9 @@ require 'test_helper'
2
2
 
3
3
  module Vedeu
4
4
 
5
- describe BackgroundColours do
5
+ describe Backgrounds do
6
6
 
7
- let(:described) { Vedeu::BackgroundColours }
7
+ let(:described) { Vedeu::Backgrounds }
8
8
 
9
9
  describe '.background_colours' do
10
10
  subject { described.background_colours }
@@ -12,6 +12,6 @@ module Vedeu
12
12
  it { subject.must_be_instance_of(described) }
13
13
  end
14
14
 
15
- end # BackgroundColours
15
+ end # Backgrounds
16
16
 
17
17
  end # Vedeu
@@ -8,25 +8,15 @@ module Vedeu
8
8
 
9
9
  after { Vedeu.borders.reset }
10
10
 
11
- describe '#by_name' do
12
- let(:_name) { 'carbon' }
11
+ it { described.must_respond_to(:borders) }
13
12
 
14
- subject { described.borders.by_name(_name) }
13
+ describe '.reset!' do
14
+ subject { described.reset! }
15
15
 
16
- context 'when the border exists' do
17
- before do
18
- Vedeu.border 'carbon' do
19
- end
20
- end
21
-
22
- it { subject.must_be_instance_of(Vedeu::Border) }
23
- end
24
-
25
- context 'when the border does not exist' do
26
- let(:_name) { 'nitrogen' }
27
-
28
- it { subject.must_be_instance_of(Vedeu::Null::Border) }
29
- end
16
+ it {
17
+ described.expects(:register).with(Vedeu::Border)
18
+ subject
19
+ }
30
20
  end
31
21
 
32
22
  end # Borders
@@ -7,30 +7,15 @@ module Vedeu
7
7
  let(:described) { Vedeu::Buffers }
8
8
  let(:instance) { described.buffers }
9
9
 
10
- after do
11
- Vedeu.buffers.reset
12
- Vedeu.interfaces.reset
13
- end
14
-
15
- describe '#by_name' do
16
- let(:_name) { 'carbon' }
17
-
18
- subject { described.buffers.by_name(_name) }
19
-
20
- context 'when the buffer exists' do
21
- before do
22
- Vedeu.interface 'carbon' do
23
- end
24
- end
25
-
26
- it { subject.must_be_instance_of(Vedeu::Buffer) }
27
- end
10
+ it { described.must_respond_to(:buffers) }
28
11
 
29
- context 'when the buffer does not exist' do
30
- let(:_name) { 'nitrogen' }
12
+ describe '#reset!' do
13
+ subject { described.reset! }
31
14
 
32
- it { subject.must_be_instance_of(Vedeu::Null::Buffer) }
33
- end
15
+ it {
16
+ described.expects(:register).with(Vedeu::Buffer)
17
+ subject
18
+ }
34
19
  end
35
20
 
36
21
  end # Buffers