nanoc 4.7.12 → 4.7.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +6 -0
  3. data/lib/nanoc/base/core_ext.rb +0 -1
  4. data/lib/nanoc/base/entities.rb +4 -1
  5. data/lib/nanoc/base/entities/dependency.rb +5 -4
  6. data/lib/nanoc/base/entities/directed_graph.rb +12 -0
  7. data/lib/nanoc/base/entities/identifiable_collection.rb +11 -6
  8. data/lib/nanoc/base/entities/item_collection.rb +14 -0
  9. data/lib/nanoc/base/entities/layout_collection.rb +14 -0
  10. data/lib/nanoc/base/entities/outdatedness_reasons.rb +19 -0
  11. data/lib/nanoc/base/entities/props.rb +33 -10
  12. data/lib/nanoc/base/repos/aggregate_data_source.rb +2 -2
  13. data/lib/nanoc/base/repos/checksum_store.rb +1 -1
  14. data/lib/nanoc/base/repos/dependency_store.rb +25 -12
  15. data/lib/nanoc/base/services/dependency_tracker.rb +3 -2
  16. data/lib/nanoc/base/services/outdatedness_checker.rb +33 -10
  17. data/lib/nanoc/base/services/outdatedness_rules.rb +2 -0
  18. data/lib/nanoc/base/services/outdatedness_rules/item_collection_extended.rb +16 -0
  19. data/lib/nanoc/base/services/outdatedness_rules/layout_collection_extended.rb +16 -0
  20. data/lib/nanoc/base/services/pruner.rb +13 -1
  21. data/lib/nanoc/base/views/identifiable_collection_view.rb +24 -0
  22. data/lib/nanoc/cli/commands/show-data.rb +4 -0
  23. data/lib/nanoc/spec.rb +2 -2
  24. data/lib/nanoc/version.rb +1 -1
  25. data/spec/nanoc/base/checksummer_spec.rb +4 -4
  26. data/spec/nanoc/base/compiler_spec.rb +2 -2
  27. data/spec/nanoc/base/directed_graph_spec.rb +42 -0
  28. data/spec/nanoc/base/entities/identifiable_collection_spec.rb +110 -93
  29. data/spec/nanoc/base/entities/props_spec.rb +121 -1
  30. data/spec/nanoc/base/entities/site_spec.rb +2 -2
  31. data/spec/nanoc/base/repos/dependency_store_spec.rb +34 -40
  32. data/spec/nanoc/base/services/compiler/stages/calculate_checksums_spec.rb +2 -2
  33. data/spec/nanoc/base/services/compiler/stages/compile_reps_spec.rb +2 -2
  34. data/spec/nanoc/base/services/dependency_tracker_spec.rb +3 -4
  35. data/spec/nanoc/base/services/outdatedness_checker_spec.rb +290 -4
  36. data/spec/nanoc/base/services/outdatedness_rules_spec.rb +3 -3
  37. data/spec/nanoc/base/services/pruner_spec.rb +9 -0
  38. data/spec/nanoc/base/views/document_view_spec.rb +3 -4
  39. data/spec/nanoc/base/views/identifiable_collection_view_spec.rb +74 -7
  40. data/spec/nanoc/base/views/item_collection_with_reps_view_spec.rb +2 -1
  41. data/spec/nanoc/base/views/item_collection_without_reps_view_spec.rb +2 -1
  42. data/spec/nanoc/base/views/item_rep_view_spec.rb +3 -4
  43. data/spec/nanoc/base/views/item_view_spec.rb +5 -6
  44. data/spec/nanoc/base/views/layout_collection_view_spec.rb +2 -1
  45. data/spec/nanoc/base/views/mutable_identifiable_collection_view_spec.rb +1 -1
  46. data/spec/nanoc/base/views/mutable_item_collection_view_spec.rb +3 -2
  47. data/spec/nanoc/base/views/mutable_layout_collection_view_spec.rb +3 -2
  48. data/spec/nanoc/base/views/post_compile_item_rep_view_spec.rb +1 -1
  49. data/spec/nanoc/cli/commands/show_data_spec.rb +4 -4
  50. data/spec/nanoc/cli/commands/show_rules_spec.rb +2 -2
  51. data/spec/nanoc/helpers/rendering_spec.rb +5 -0
  52. data/spec/nanoc/rule_dsl/action_sequence_calculator_spec.rb +2 -2
  53. data/spec/nanoc/rule_dsl/rule_context_spec.rb +6 -4
  54. data/test/base/test_dependency_tracker.rb +22 -22
  55. data/test/base/test_item_array.rb +2 -2
  56. data/test/filters/test_xsl.rb +2 -2
  57. data/test/fixtures/vcr_cassettes/html_run_error.yml +17 -12
  58. data/test/fixtures/vcr_cassettes/html_run_ok.yml +17 -12
  59. data/test/helpers/test_blogging.rb +2 -2
  60. data/test/helpers/test_xml_sitemap.rb +7 -7
  61. metadata +6 -4
  62. data/lib/nanoc/base/core_ext/pathname.rb +0 -10
  63. data/test/extra/core_ext/test_pathname.rb +0 -14
@@ -48,8 +48,8 @@ describe Nanoc::Int::OutdatednessRules do
48
48
  ).run
49
49
  end
50
50
 
51
- let(:items) { Nanoc::Int::IdentifiableCollection.new(config, [item]) }
52
- let(:layouts) { Nanoc::Int::IdentifiableCollection.new(config) }
51
+ let(:items) { Nanoc::Int::ItemCollection.new(config, [item]) }
52
+ let(:layouts) { Nanoc::Int::LayoutCollection.new(config) }
53
53
 
54
54
  before do
55
55
  allow(site).to receive(:code_snippets).and_return(code_snippets)
@@ -339,7 +339,7 @@ describe Nanoc::Int::OutdatednessRules do
339
339
  let(:stored_obj) { raise 'override me' }
340
340
  let(:new_obj) { raise 'override me' }
341
341
 
342
- let(:items) { [new_obj] }
342
+ let(:items) { Nanoc::Int::ItemCollection.new(config, [new_obj]) }
343
343
 
344
344
  shared_examples 'a document' do
345
345
  let(:stored_obj) { klass.new('a', {}, '/foo.md') }
@@ -25,6 +25,15 @@ describe Nanoc::Pruner do
25
25
  expect(Nanoc::Extra::Pruner).to equal(Nanoc::Pruner)
26
26
  end
27
27
 
28
+ describe '#pathname_components' do
29
+ subject { pruner.pathname_components(pathname) }
30
+
31
+ context 'regular path' do
32
+ let(:pathname) { Pathname.new('/a/bb/ccc/dd/e') }
33
+ it { is_expected.to eql(%w[/ a bb ccc dd e]) }
34
+ end
35
+ end
36
+
28
37
  describe '#files_and_dirs_in' do
29
38
  subject { pruner.files_and_dirs_in('output/') }
30
39
 
@@ -14,12 +14,11 @@ shared_examples 'a document view' do
14
14
  end
15
15
 
16
16
  let(:dependency_tracker) { Nanoc::Int::DependencyTracker.new(dependency_store) }
17
- let(:dependency_store) { Nanoc::Int::DependencyStore.new(empty_identifiable_collection, empty_identifiable_collection, config) }
17
+ let(:dependency_store) { Nanoc::Int::DependencyStore.new(empty_items, empty_layouts, config) }
18
18
  let(:base_item) { Nanoc::Int::Item.new('base', {}, '/base.md') }
19
19
 
20
- let(:empty_identifiable_collection) do
21
- Nanoc::Int::IdentifiableCollection.new(config)
22
- end
20
+ let(:empty_items) { Nanoc::Int::ItemCollection.new(config) }
21
+ let(:empty_layouts) { Nanoc::Int::LayoutCollection.new(config) }
23
22
 
24
23
  let(:config) { Nanoc::Int::Configuration.new.with_defaults }
25
24
 
@@ -4,7 +4,19 @@
4
4
  shared_examples 'an identifiable collection' do
5
5
  let(:view) { described_class.new(wrapped, view_context) }
6
6
 
7
- let(:view_context) { double(:view_context) }
7
+ let(:view_context) do
8
+ Nanoc::ViewContext.new(
9
+ reps: double(:__reps),
10
+ items: double(:__items),
11
+ dependency_tracker: dependency_tracker,
12
+ compilation_context: double(:__compilation_context),
13
+ snapshot_repo: double(:__snapshot_repo),
14
+ )
15
+ end
16
+
17
+ let(:dependency_tracker) do
18
+ Nanoc::Int::DependencyTracker::Null.new
19
+ end
8
20
 
9
21
  let(:config) do
10
22
  { string_pattern_type: 'glob' }
@@ -12,7 +24,7 @@ shared_examples 'an identifiable collection' do
12
24
 
13
25
  describe '#frozen?' do
14
26
  let(:wrapped) do
15
- Nanoc::Int::IdentifiableCollection.new(
27
+ collection_class.new(
16
28
  config,
17
29
  [
18
30
  double(:identifiable, identifier: Nanoc::Identifier.new('/foo')),
@@ -39,7 +51,7 @@ shared_examples 'an identifiable collection' do
39
51
 
40
52
  describe '#unwrap' do
41
53
  let(:wrapped) do
42
- Nanoc::Int::IdentifiableCollection.new(
54
+ collection_class.new(
43
55
  config,
44
56
  [
45
57
  double(:identifiable, identifier: Nanoc::Identifier.new('/foo')),
@@ -52,11 +64,16 @@ shared_examples 'an identifiable collection' do
52
64
  subject { view.unwrap }
53
65
 
54
66
  it { should equal(wrapped) }
67
+
68
+ it 'does not create dependency' do
69
+ expect(dependency_tracker).not_to receive(:bounce)
70
+ subject
71
+ end
55
72
  end
56
73
 
57
74
  describe '#each' do
58
75
  let(:wrapped) do
59
- Nanoc::Int::IdentifiableCollection.new(
76
+ collection_class.new(
60
77
  config,
61
78
  [
62
79
  double(:identifiable, identifier: Nanoc::Identifier.new('/foo')),
@@ -66,6 +83,11 @@ shared_examples 'an identifiable collection' do
66
83
  )
67
84
  end
68
85
 
86
+ it 'creates dependency' do
87
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: true)
88
+ view.each { |_i| }
89
+ end
90
+
69
91
  it 'returns self' do
70
92
  expect(view.each { |_i| }).to equal(view)
71
93
  end
@@ -77,7 +99,7 @@ shared_examples 'an identifiable collection' do
77
99
 
78
100
  describe '#size' do
79
101
  let(:wrapped) do
80
- Nanoc::Int::IdentifiableCollection.new(
102
+ collection_class.new(
81
103
  config,
82
104
  [
83
105
  double(:identifiable, identifier: Nanoc::Identifier.new('/foo')),
@@ -89,6 +111,11 @@ shared_examples 'an identifiable collection' do
89
111
 
90
112
  subject { view.size }
91
113
 
114
+ it 'creates dependency' do
115
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: true)
116
+ subject
117
+ end
118
+
92
119
  it { should == 3 }
93
120
  end
94
121
 
@@ -102,7 +129,7 @@ shared_examples 'an identifiable collection' do
102
129
  end
103
130
 
104
131
  let(:wrapped) do
105
- Nanoc::Int::IdentifiableCollection.new(
132
+ collection_class.new(
106
133
  config,
107
134
  [
108
135
  page_object,
@@ -116,11 +143,21 @@ shared_examples 'an identifiable collection' do
116
143
  context 'no objects found' do
117
144
  let(:arg) { '/donkey.*' }
118
145
  it { is_expected.to equal(nil) }
146
+
147
+ it 'creates dependency' do
148
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: ['/donkey.*'])
149
+ subject
150
+ end
119
151
  end
120
152
 
121
153
  context 'string' do
122
154
  let(:arg) { '/home.erb' }
123
155
 
156
+ it 'creates dependency' do
157
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: ['/home.erb'])
158
+ subject
159
+ end
160
+
124
161
  it 'returns wrapped object' do
125
162
  expect(subject.class).to equal(view_class)
126
163
  expect(subject.unwrap).to equal(home_object)
@@ -134,6 +171,11 @@ shared_examples 'an identifiable collection' do
134
171
  context 'identifier' do
135
172
  let(:arg) { Nanoc::Identifier.new('/home.erb') }
136
173
 
174
+ it 'creates dependency' do
175
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: ['/home.erb'])
176
+ subject
177
+ end
178
+
137
179
  it 'returns wrapped object' do
138
180
  expect(subject.class).to equal(view_class)
139
181
  expect(subject.unwrap).to equal(home_object)
@@ -146,12 +188,22 @@ shared_examples 'an identifiable collection' do
146
188
  context 'globs not enabled' do
147
189
  let(:config) { { string_pattern_type: 'legacy' } }
148
190
 
191
+ it 'creates dependency' do
192
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: ['/home.*'])
193
+ subject
194
+ end
195
+
149
196
  it 'returns nil' do
150
197
  expect(subject).to be_nil
151
198
  end
152
199
  end
153
200
 
154
201
  context 'globs enabled' do
202
+ it 'creates dependency' do
203
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: ['/home.*'])
204
+ subject
205
+ end
206
+
155
207
  it 'returns wrapped object' do
156
208
  expect(subject.class).to equal(view_class)
157
209
  expect(subject.unwrap).to equal(home_object)
@@ -162,6 +214,11 @@ shared_examples 'an identifiable collection' do
162
214
  context 'regex' do
163
215
  let(:arg) { %r{\A/home} }
164
216
 
217
+ it 'creates dependency' do
218
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: [%r{\A/home}])
219
+ subject
220
+ end
221
+
165
222
  it 'returns wrapped object' do
166
223
  expect(subject.class).to equal(view_class)
167
224
  expect(subject.unwrap).to equal(home_object)
@@ -171,7 +228,7 @@ shared_examples 'an identifiable collection' do
171
228
 
172
229
  describe '#find_all' do
173
230
  let(:wrapped) do
174
- Nanoc::Int::IdentifiableCollection.new(
231
+ collection_class.new(
175
232
  config,
176
233
  [
177
234
  double(:identifiable, identifier: Nanoc::Identifier.new('/about.css')),
@@ -186,6 +243,11 @@ shared_examples 'an identifiable collection' do
186
243
  context 'with string' do
187
244
  let(:arg) { '/*.css' }
188
245
 
246
+ it 'creates dependency' do
247
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: ['/*.css'])
248
+ subject
249
+ end
250
+
189
251
  it 'contains views' do
190
252
  expect(subject.size).to eql(2)
191
253
  about_css = subject.find { |iv| iv.identifier == '/about.css' }
@@ -198,6 +260,11 @@ shared_examples 'an identifiable collection' do
198
260
  context 'with regex' do
199
261
  let(:arg) { %r{\.css\z} }
200
262
 
263
+ it 'creates dependency' do
264
+ expect(dependency_tracker).to receive(:bounce).with(wrapped, raw_content: [%r{\.css\z}])
265
+ subject
266
+ end
267
+
201
268
  it 'contains views' do
202
269
  expect(subject.size).to eql(2)
203
270
  about_css = subject.find { |iv| iv.identifier == '/about.css' }
@@ -2,11 +2,12 @@
2
2
 
3
3
  describe Nanoc::ItemCollectionWithRepsView do
4
4
  let(:view_class) { Nanoc::ItemWithRepsView }
5
+ let(:collection_class) { Nanoc::Int::ItemCollection }
5
6
  it_behaves_like 'an identifiable collection'
6
7
 
7
8
  describe '#inspect' do
8
9
  let(:wrapped) do
9
- Nanoc::Int::IdentifiableCollection.new(config)
10
+ Nanoc::Int::ItemCollection.new(config)
10
11
  end
11
12
 
12
13
  let(:view) { described_class.new(wrapped, view_context) }
@@ -2,11 +2,12 @@
2
2
 
3
3
  describe Nanoc::ItemCollectionWithoutRepsView do
4
4
  let(:view_class) { Nanoc::ItemWithoutRepsView }
5
+ let(:collection_class) { Nanoc::Int::ItemCollection }
5
6
  it_behaves_like 'an identifiable collection'
6
7
 
7
8
  describe '#inspect' do
8
9
  let(:wrapped) do
9
- Nanoc::Int::IdentifiableCollection.new(config)
10
+ Nanoc::Int::ItemCollection.new(config)
10
11
  end
11
12
 
12
13
  let(:view) { described_class.new(wrapped, view_context) }
@@ -17,12 +17,11 @@ describe Nanoc::ItemRepView do
17
17
  let(:snapshot_repo) { Nanoc::Int::SnapshotRepo.new }
18
18
 
19
19
  let(:dependency_tracker) { Nanoc::Int::DependencyTracker.new(dependency_store) }
20
- let(:dependency_store) { Nanoc::Int::DependencyStore.new(empty_identifiable_collection, empty_identifiable_collection, config) }
20
+ let(:dependency_store) { Nanoc::Int::DependencyStore.new(empty_items, empty_layouts, config) }
21
21
  let(:base_item) { Nanoc::Int::Item.new('base', {}, '/base.md') }
22
22
 
23
- let(:empty_identifiable_collection) do
24
- Nanoc::Int::IdentifiableCollection.new(config)
25
- end
23
+ let(:empty_items) { Nanoc::Int::ItemCollection.new(config) }
24
+ let(:empty_layouts) { Nanoc::Int::LayoutCollection.new(config) }
26
25
 
27
26
  let(:config) { Nanoc::Int::Configuration.new.with_defaults }
28
27
 
@@ -18,15 +18,14 @@ describe Nanoc::ItemWithRepsView do
18
18
  let(:reps) { [] }
19
19
  let(:items) { [] }
20
20
  let(:dependency_tracker) { Nanoc::Int::DependencyTracker.new(dependency_store) }
21
- let(:dependency_store) { Nanoc::Int::DependencyStore.new(empty_identifiable_collection, empty_identifiable_collection, config) }
21
+ let(:dependency_store) { Nanoc::Int::DependencyStore.new(empty_items, empty_layouts, config) }
22
22
  let(:compilation_context) { double(:compilation_context) }
23
23
  let(:snapshot_repo) { Nanoc::Int::SnapshotRepo.new }
24
24
 
25
25
  let(:base_item) { Nanoc::Int::Item.new('base', {}, '/base.md') }
26
26
 
27
- let(:empty_identifiable_collection) do
28
- Nanoc::Int::IdentifiableCollection.new(config)
29
- end
27
+ let(:empty_items) { Nanoc::Int::ItemCollection.new(config) }
28
+ let(:empty_layouts) { Nanoc::Int::LayoutCollection.new(config) }
30
29
 
31
30
  let(:config) { Nanoc::Int::Configuration.new.with_defaults }
32
31
 
@@ -42,7 +41,7 @@ describe Nanoc::ItemWithRepsView do
42
41
  let(:view) { described_class.new(item, view_context) }
43
42
 
44
43
  let(:items) do
45
- Nanoc::Int::IdentifiableCollection.new(
44
+ Nanoc::Int::ItemCollection.new(
46
45
  {},
47
46
  [
48
47
  item,
@@ -141,7 +140,7 @@ describe Nanoc::ItemWithRepsView do
141
140
  let(:view) { described_class.new(item, view_context) }
142
141
 
143
142
  let(:items) do
144
- Nanoc::Int::IdentifiableCollection.new(
143
+ Nanoc::Int::ItemCollection.new(
145
144
  {},
146
145
  [
147
146
  item,
@@ -2,11 +2,12 @@
2
2
 
3
3
  describe Nanoc::LayoutCollectionView do
4
4
  let(:view_class) { Nanoc::LayoutView }
5
+ let(:collection_class) { Nanoc::Int::LayoutCollection }
5
6
  it_behaves_like 'an identifiable collection'
6
7
 
7
8
  describe '#inspect' do
8
9
  let(:wrapped) do
9
- Nanoc::Int::IdentifiableCollection.new(config)
10
+ Nanoc::Int::LayoutCollection.new(config)
10
11
  end
11
12
 
12
13
  let(:view) { described_class.new(wrapped, view_context) }
@@ -11,7 +11,7 @@ shared_examples 'a mutable identifiable collection' do
11
11
 
12
12
  describe '#delete_if' do
13
13
  let(:wrapped) do
14
- Nanoc::Int::IdentifiableCollection.new(
14
+ collection_class.new(
15
15
  config,
16
16
  [double(:identifiable, identifier: Nanoc::Identifier.new('/asdf/'))],
17
17
  )
@@ -2,6 +2,7 @@
2
2
 
3
3
  describe Nanoc::MutableItemCollectionView do
4
4
  let(:view_class) { Nanoc::MutableItemView }
5
+ let(:collection_class) { Nanoc::Int::ItemCollection }
5
6
  it_behaves_like 'an identifiable collection'
6
7
  it_behaves_like 'a mutable identifiable collection'
7
8
 
@@ -15,7 +16,7 @@ describe Nanoc::MutableItemCollectionView do
15
16
  end
16
17
 
17
18
  let(:wrapped) do
18
- Nanoc::Int::IdentifiableCollection.new(config, [item])
19
+ Nanoc::Int::ItemCollection.new(config, [item])
19
20
  end
20
21
 
21
22
  let(:view) { described_class.new(wrapped, nil) }
@@ -42,7 +43,7 @@ describe Nanoc::MutableItemCollectionView do
42
43
 
43
44
  describe '#inspect' do
44
45
  let(:wrapped) do
45
- Nanoc::Int::IdentifiableCollection.new(config)
46
+ Nanoc::Int::ItemCollection.new(config)
46
47
  end
47
48
 
48
49
  let(:view) { described_class.new(wrapped, view_context) }
@@ -2,6 +2,7 @@
2
2
 
3
3
  describe Nanoc::MutableLayoutCollectionView do
4
4
  let(:view_class) { Nanoc::MutableLayoutView }
5
+ let(:collection_class) { Nanoc::Int::LayoutCollection }
5
6
  it_behaves_like 'an identifiable collection'
6
7
  it_behaves_like 'a mutable identifiable collection'
7
8
 
@@ -15,7 +16,7 @@ describe Nanoc::MutableLayoutCollectionView do
15
16
  end
16
17
 
17
18
  let(:wrapped) do
18
- Nanoc::Int::IdentifiableCollection.new(config, [layout])
19
+ Nanoc::Int::LayoutCollection.new(config, [layout])
19
20
  end
20
21
 
21
22
  let(:view) { described_class.new(wrapped, nil) }
@@ -42,7 +43,7 @@ describe Nanoc::MutableLayoutCollectionView do
42
43
 
43
44
  describe '#inspect' do
44
45
  let(:wrapped) do
45
- Nanoc::Int::IdentifiableCollection.new(config)
46
+ Nanoc::Int::LayoutCollection.new(config)
46
47
  end
47
48
 
48
49
  let(:view) { described_class.new(wrapped, view_context) }
@@ -16,7 +16,7 @@ describe Nanoc::PostCompileItemRepView do
16
16
  end
17
17
 
18
18
  let(:reps) { double(:reps) }
19
- let(:items) { Nanoc::Int::IdentifiableCollection.new(config) }
19
+ let(:items) { Nanoc::Int::ItemCollection.new(config) }
20
20
  let(:config) { Nanoc::Int::Configuration.new }
21
21
  let(:dependency_tracker) { Nanoc::Int::DependencyTracker.new(double(:dependency_store)) }
22
22
  let(:compilation_context) { double(:compilation_context, compiled_content_cache: compiled_content_cache) }
@@ -13,7 +13,7 @@ describe Nanoc::CLI::Commands::ShowData, stdio: true do
13
13
  let(:command) { double(:command) }
14
14
 
15
15
  let(:items) do
16
- Nanoc::Int::IdentifiableCollection.new(
16
+ Nanoc::Int::ItemCollection.new(
17
17
  config,
18
18
  [
19
19
  item_about,
@@ -34,7 +34,7 @@ describe Nanoc::CLI::Commands::ShowData, stdio: true do
34
34
  end
35
35
 
36
36
  let(:layouts) do
37
- Nanoc::Int::IdentifiableCollection.new(config)
37
+ Nanoc::Int::LayoutCollection.new(config)
38
38
  end
39
39
 
40
40
  it 'prints a legend' do
@@ -166,7 +166,7 @@ describe Nanoc::CLI::Commands::ShowData, stdio: true do
166
166
  let(:config) { Nanoc::Int::Configuration.new }
167
167
 
168
168
  let(:items) do
169
- Nanoc::Int::IdentifiableCollection.new(
169
+ Nanoc::Int::ItemCollection.new(
170
170
  config,
171
171
  [
172
172
  item_about,
@@ -257,7 +257,7 @@ describe Nanoc::CLI::Commands::ShowData, stdio: true do
257
257
  let(:config) { Nanoc::Int::Configuration.new }
258
258
 
259
259
  let(:layouts) do
260
- Nanoc::Int::IdentifiableCollection.new(config, [layout])
260
+ Nanoc::Int::LayoutCollection.new(config, [layout])
261
261
  end
262
262
 
263
263
  let(:layout) { Nanoc::Int::Layout.new('stuff', {}, '/default.erb') }