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
@@ -26,7 +26,7 @@ describe Nanoc::CLI::Commands::ShowRules, stdio: true do
26
26
  end
27
27
 
28
28
  let(:items) do
29
- Nanoc::Int::IdentifiableCollection.new(
29
+ Nanoc::Int::ItemCollection.new(
30
30
  config,
31
31
  [
32
32
  Nanoc::Int::Item.new('About Me', {}, '/about.md'),
@@ -47,7 +47,7 @@ describe Nanoc::CLI::Commands::ShowRules, stdio: true do
47
47
  end
48
48
 
49
49
  let(:layouts) do
50
- Nanoc::Int::IdentifiableCollection.new(
50
+ Nanoc::Int::LayoutCollection.new(
51
51
  config,
52
52
  [
53
53
  Nanoc::Int::Layout.new('Default', {}, '/default.erb'),
@@ -28,8 +28,13 @@ describe Nanoc::Helpers::Rendering, helper: true do
28
28
  it { is_expected.to eql('blah') }
29
29
 
30
30
  it 'tracks proper dependencies' do
31
+ expect(ctx.dependency_tracker).to receive(:enter)
32
+ .with(an_instance_of(Nanoc::Int::LayoutCollection), raw_content: ['/partial/'], attributes: false, compiled_content: false, path: false)
33
+ .ordered
31
34
  expect(ctx.dependency_tracker).to receive(:enter)
32
35
  .with(layout, raw_content: true, attributes: false, compiled_content: false, path: false)
36
+ .ordered
37
+
33
38
  subject
34
39
  end
35
40
  end
@@ -16,8 +16,8 @@ describe(Nanoc::RuleDSL::ActionSequenceCalculator) do
16
16
 
17
17
  let(:item) { Nanoc::Int::Item.new('content', {}, Nanoc::Identifier.from('/list.md')) }
18
18
  let(:config) { Nanoc::Int::Configuration.new.with_defaults }
19
- let(:items) { Nanoc::Int::IdentifiableCollection.new(config) }
20
- let(:layouts) { Nanoc::Int::IdentifiableCollection.new(config) }
19
+ let(:items) { Nanoc::Int::ItemCollection.new(config) }
20
+ let(:layouts) { Nanoc::Int::LayoutCollection.new(config) }
21
21
  let(:site) { double(:site, items: items, layouts: layouts, config: config, compiler: compiler) }
22
22
  let(:compiler) { double(:compiler, compilation_context: compilation_context) }
23
23
  let(:compilation_context) { double(:compilation_context) }
@@ -8,8 +8,8 @@ describe(Nanoc::RuleDSL::RuleContext) do
8
8
  let(:item_identifier) { Nanoc::Identifier.new('/foo.md') }
9
9
  let(:item) { Nanoc::Int::Item.new('content', {}, item_identifier) }
10
10
  let(:config) { Nanoc::Int::Configuration.new }
11
- let(:items) { Nanoc::Int::IdentifiableCollection.new(config) }
12
- let(:layouts) { Nanoc::Int::IdentifiableCollection.new(config) }
11
+ let(:items) { Nanoc::Int::ItemCollection.new(config) }
12
+ let(:layouts) { Nanoc::Int::LayoutCollection.new(config) }
13
13
 
14
14
  let(:rep) { double(:rep, item: item) }
15
15
  let(:site) { double(:site, items: items, layouts: layouts, config: config) }
@@ -59,7 +59,7 @@ describe(Nanoc::RuleDSL::RuleContext) do
59
59
  let(:child) { Nanoc::Int::Item.new('child', {}, child_identifier) }
60
60
 
61
61
  let(:items) do
62
- Nanoc::Int::IdentifiableCollection.new(config, [item, parent, child])
62
+ Nanoc::Int::ItemCollection.new(config, [item, parent, child])
63
63
  end
64
64
 
65
65
  it 'has a parent' do
@@ -98,7 +98,7 @@ describe(Nanoc::RuleDSL::RuleContext) do
98
98
  let(:child) { Nanoc::Int::Item.new('child', {}, child_identifier) }
99
99
 
100
100
  let(:items) do
101
- Nanoc::Int::IdentifiableCollection.new(config, [item, parent, child])
101
+ Nanoc::Int::ItemCollection.new(config, [item, parent, child])
102
102
  end
103
103
 
104
104
  it 'is a view without reps access' do
@@ -110,6 +110,8 @@ describe(Nanoc::RuleDSL::RuleContext) do
110
110
  end
111
111
 
112
112
  it 'provides no rep access' do
113
+ allow(dependency_tracker).to receive(:bounce).and_return(nil)
114
+
113
115
  expect(subject['/']).not_to be_nil
114
116
  expect(subject['/']).not_to respond_to(:compiled_content)
115
117
  expect(subject['/']).not_to respond_to(:path)
@@ -6,8 +6,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
6
6
  def test_initialize
7
7
  # Mock objects
8
8
  config = Nanoc::Int::Configuration.new.with_defaults
9
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
10
- items = Nanoc::Int::IdentifiableCollection.new(config, [
9
+ layouts = Nanoc::Int::LayoutCollection.new(config)
10
+ items = Nanoc::Int::ItemCollection.new(config, [
11
11
  Nanoc::Int::Item.new('a', {}, '/a.md'),
12
12
  Nanoc::Int::Item.new('b', {}, '/b.md'),
13
13
  ])
@@ -23,8 +23,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
23
23
  def test_record_dependency
24
24
  # Mock objects
25
25
  config = Nanoc::Int::Configuration.new.with_defaults
26
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
27
- items = Nanoc::Int::IdentifiableCollection.new(config, [
26
+ layouts = Nanoc::Int::LayoutCollection.new(config)
27
+ items = Nanoc::Int::ItemCollection.new(config, [
28
28
  Nanoc::Int::Item.new('a', {}, '/a.md'),
29
29
  Nanoc::Int::Item.new('b', {}, '/b.md'),
30
30
  ])
@@ -42,8 +42,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
42
42
  def test_record_dependency_no_self
43
43
  # Mock objects
44
44
  config = Nanoc::Int::Configuration.new.with_defaults
45
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
46
- items = Nanoc::Int::IdentifiableCollection.new(config, [
45
+ layouts = Nanoc::Int::LayoutCollection.new(config)
46
+ items = Nanoc::Int::ItemCollection.new(config, [
47
47
  Nanoc::Int::Item.new('a', {}, '/a.md'),
48
48
  Nanoc::Int::Item.new('b', {}, '/b.md'),
49
49
  ])
@@ -62,8 +62,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
62
62
  def test_record_dependency_no_doubles
63
63
  # Mock objects
64
64
  config = Nanoc::Int::Configuration.new.with_defaults
65
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
66
- items = Nanoc::Int::IdentifiableCollection.new(config, [
65
+ layouts = Nanoc::Int::LayoutCollection.new(config)
66
+ items = Nanoc::Int::ItemCollection.new(config, [
67
67
  Nanoc::Int::Item.new('a', {}, '/a.md'),
68
68
  Nanoc::Int::Item.new('b', {}, '/b.md'),
69
69
  ])
@@ -83,8 +83,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
83
83
  def test_objects_causing_outdatedness_of
84
84
  # Mock objects
85
85
  config = Nanoc::Int::Configuration.new.with_defaults
86
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
87
- items = Nanoc::Int::IdentifiableCollection.new(config, [
86
+ layouts = Nanoc::Int::LayoutCollection.new(config)
87
+ items = Nanoc::Int::ItemCollection.new(config, [
88
88
  Nanoc::Int::Item.new('a', {}, '/a.md'),
89
89
  Nanoc::Int::Item.new('b', {}, '/b.md'),
90
90
  Nanoc::Int::Item.new('c', {}, '/c.md'),
@@ -104,8 +104,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
104
104
  def test_store_graph_and_load_graph_simple
105
105
  # Mock objects
106
106
  config = Nanoc::Int::Configuration.new.with_defaults
107
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
108
- items = Nanoc::Int::IdentifiableCollection.new(config, [
107
+ layouts = Nanoc::Int::LayoutCollection.new(config)
108
+ items = Nanoc::Int::ItemCollection.new(config, [
109
109
  Nanoc::Int::Item.new('a', {}, '/a.md'),
110
110
  Nanoc::Int::Item.new('b', {}, '/b.md'),
111
111
  Nanoc::Int::Item.new('c', {}, '/c.md'),
@@ -140,8 +140,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
140
140
  def test_store_graph_and_load_graph_with_removed_items
141
141
  # Mock objects
142
142
  config = Nanoc::Int::Configuration.new.with_defaults
143
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
144
- items = Nanoc::Int::IdentifiableCollection.new(config, [
143
+ layouts = Nanoc::Int::LayoutCollection.new(config)
144
+ items = Nanoc::Int::ItemCollection.new(config, [
145
145
  Nanoc::Int::Item.new('a', {}, '/a.md'),
146
146
  Nanoc::Int::Item.new('b', {}, '/b.md'),
147
147
  Nanoc::Int::Item.new('c', {}, '/c.md'),
@@ -149,8 +149,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
149
149
  ])
150
150
 
151
151
  # Create new and old lists
152
- old_items = Nanoc::Int::IdentifiableCollection.new(config, [items.to_a[0], items.to_a[1], items.to_a[2], items.to_a[3]])
153
- new_items = Nanoc::Int::IdentifiableCollection.new(config, [items.to_a[0], items.to_a[1], items.to_a[2]])
152
+ old_items = Nanoc::Int::ItemCollection.new(config, [items.to_a[0], items.to_a[1], items.to_a[2], items.to_a[3]])
153
+ new_items = Nanoc::Int::ItemCollection.new(config, [items.to_a[0], items.to_a[1], items.to_a[2]])
154
154
 
155
155
  # Create
156
156
  store = Nanoc::Int::DependencyStore.new(old_items, layouts, config)
@@ -179,8 +179,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
179
179
  def test_store_graph_with_nils_in_dst
180
180
  # Mock objects
181
181
  config = Nanoc::Int::Configuration.new.with_defaults
182
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
183
- items = Nanoc::Int::IdentifiableCollection.new(config, [
182
+ layouts = Nanoc::Int::LayoutCollection.new(config)
183
+ items = Nanoc::Int::ItemCollection.new(config, [
184
184
  Nanoc::Int::Item.new('a', {}, '/a.md'),
185
185
  Nanoc::Int::Item.new('b', {}, '/b.md'),
186
186
  Nanoc::Int::Item.new('c', {}, '/c.md'),
@@ -211,8 +211,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
211
211
  def test_store_graph_with_nils_in_src
212
212
  # Mock objects
213
213
  config = Nanoc::Int::Configuration.new.with_defaults
214
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
215
- items = Nanoc::Int::IdentifiableCollection.new(config, [
214
+ layouts = Nanoc::Int::LayoutCollection.new(config)
215
+ items = Nanoc::Int::ItemCollection.new(config, [
216
216
  Nanoc::Int::Item.new('a', {}, '/a.md'),
217
217
  Nanoc::Int::Item.new('b', {}, '/b.md'),
218
218
  Nanoc::Int::Item.new('c', {}, '/c.md'),
@@ -243,8 +243,8 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
243
243
  def test_forget_dependencies_for
244
244
  # Mock objects
245
245
  config = Nanoc::Int::Configuration.new.with_defaults
246
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
247
- items = Nanoc::Int::IdentifiableCollection.new(config, [
246
+ layouts = Nanoc::Int::LayoutCollection.new(config)
247
+ items = Nanoc::Int::ItemCollection.new(config, [
248
248
  Nanoc::Int::Item.new('a', {}, '/a.md'),
249
249
  Nanoc::Int::Item.new('b', {}, '/b.md'),
250
250
  Nanoc::Int::Item.new('c', {}, '/c.md'),
@@ -9,7 +9,7 @@ class Nanoc::Int::IdentifiableCollectionTest < Nanoc::TestCase
9
9
  @one = Nanoc::Int::Item.new('Item One', {}, '/one/')
10
10
  @two = Nanoc::Int::Item.new('Item Two', {}, '/two/')
11
11
 
12
- @items = Nanoc::Int::IdentifiableCollection.new({}, [@one, @two])
12
+ @items = Nanoc::Int::ItemCollection.new({}, [@one, @two])
13
13
  end
14
14
 
15
15
  def test_change_item_identifier
@@ -30,7 +30,7 @@ class Nanoc::Int::IdentifiableCollectionTest < Nanoc::TestCase
30
30
  assert_nil @items['/foo/']
31
31
 
32
32
  foo = Nanoc::Int::Item.new('Item Foo', {}, '/foo/')
33
- @items = Nanoc::Int::IdentifiableCollection.new({}, [@one, @two, foo])
33
+ @items = Nanoc::Int::ItemCollection.new({}, [@one, @two, foo])
34
34
 
35
35
  assert_equal foo, @items['/foo/']
36
36
  end
@@ -89,8 +89,8 @@ EOS
89
89
  super
90
90
 
91
91
  config = Nanoc::Int::Configuration.new
92
- items = Nanoc::Int::IdentifiableCollection.new(config)
93
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
92
+ items = Nanoc::Int::ItemCollection.new(config)
93
+ layouts = Nanoc::Int::LayoutCollection.new(config)
94
94
 
95
95
  @dependency_store = Nanoc::Int::DependencyStore.new(items, layouts, config)
96
96
  @dependency_tracker = Nanoc::Int::DependencyTracker.new(@dependency_store)
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://validator.nu/?out=json&parser=html&showsource=yes
5
+ uri: https://validator.w3.org/nu/?out=json&parser=html&showsource=yes
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: "<h2>Hi!</h1>"
@@ -20,16 +20,8 @@ http_interactions:
20
20
  code: 200
21
21
  message: OK
22
22
  headers:
23
- Server:
24
- - nginx/1.11.10
25
23
  Date:
26
- - Sat, 04 Mar 2017 21:33:40 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Transfer-Encoding:
30
- - chunked
31
- Connection:
32
- - keep-alive
24
+ - Fri, 30 Jun 2017 20:45:18 GMT
33
25
  Accept-Encoding:
34
26
  - gzip
35
27
  Access-Control-Allow-Origin:
@@ -40,12 +32,25 @@ http_interactions:
40
32
  - Thu, 01 Jan 1970 00:00:00 GMT
41
33
  Cache-Control:
42
34
  - no-cache
35
+ Content-Type:
36
+ - application/json; charset=utf-8
37
+ Transfer-Encoding:
38
+ - chunked
39
+ Server:
40
+ - Jetty(9.2.9.v20150224)
43
41
  Strict-Transport-Security:
44
- - max-age=31536000; includeSubDomains; preload
42
+ - max-age=15552015; preload
43
+ Public-Key-Pins:
44
+ - pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
45
+ pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
46
+ X-Frame-Options:
47
+ - deny
48
+ X-Xss-Protection:
49
+ - 1; mode=block
45
50
  body:
46
51
  encoding: ASCII-8BIT
47
52
  string: !binary |-
48
53
  eyJtZXNzYWdlcyI6W3sidHlwZSI6ImVycm9yIiwibGFzdExpbmUiOjEsImxhc3RDb2x1bW4iOjQsImZpcnN0Q29sdW1uIjoxLCJtZXNzYWdlIjoiU3RhcnQgdGFnIHNlZW4gd2l0aG91dCBzZWVpbmcgYSBkb2N0eXBlIGZpcnN0LiBFeHBlY3RlZCBlLmcuIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4iLCJleHRyYWN0IjoiPGgyPkhpITwvaCIsImhpbGl0ZVN0YXJ0IjowLCJoaWxpdGVMZW5ndGgiOjR9LHsidHlwZSI6ImVycm9yIiwibGFzdExpbmUiOjEsImxhc3RDb2x1bW4iOjQsImZpcnN0Q29sdW1uIjoxLCJtZXNzYWdlIjoiRWxlbWVudCDigJxoZWFk4oCdIGlzIG1pc3NpbmcgYSByZXF1aXJlZCBpbnN0YW5jZSBvZiBjaGlsZCBlbGVtZW50IOKAnHRpdGxl4oCdLiIsImV4dHJhY3QiOiI8aDI+SGkhPC9oIiwiaGlsaXRlU3RhcnQiOjAsImhpbGl0ZUxlbmd0aCI6NH0seyJ0eXBlIjoiZXJyb3IiLCJsYXN0TGluZSI6MSwibGFzdENvbHVtbiI6MTIsImZpcnN0Q29sdW1uIjo4LCJtZXNzYWdlIjoiRW5kIHRhZyDigJxoMeKAnSBzZWVuLCBidXQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLiIsImV4dHJhY3QiOiI8aDI+SGkhPC9oMT4iLCJoaWxpdGVTdGFydCI6NywiaGlsaXRlTGVuZ3RoIjo1fV0sInNvdXJjZSI6eyJ0eXBlIjoidGV4dC9odG1sIiwiZW5jb2RpbmciOiJVVEYtOCIsImNvZGUiOiI8aDI+SGkhPC9oMT4ifX0K
49
54
  http_version:
50
- recorded_at: Sat, 04 Mar 2017 21:33:40 GMT
55
+ recorded_at: Fri, 30 Jun 2017 20:45:19 GMT
51
56
  recorded_with: VCR 3.0.3
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://validator.nu/?out=json&parser=html&showsource=yes
5
+ uri: https://validator.w3.org/nu/?out=json&parser=html&showsource=yes
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: <!DOCTYPE html><html><head><meta charset="utf-8"><title>Hello</title></head><body><h1>Hi!</h1></body>
@@ -20,16 +20,8 @@ http_interactions:
20
20
  code: 200
21
21
  message: OK
22
22
  headers:
23
- Server:
24
- - nginx/1.11.10
25
23
  Date:
26
- - Fri, 10 Mar 2017 20:24:28 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Transfer-Encoding:
30
- - chunked
31
- Connection:
32
- - keep-alive
24
+ - Fri, 30 Jun 2017 20:45:19 GMT
33
25
  Accept-Encoding:
34
26
  - gzip
35
27
  Access-Control-Allow-Origin:
@@ -40,8 +32,21 @@ http_interactions:
40
32
  - Thu, 01 Jan 1970 00:00:00 GMT
41
33
  Cache-Control:
42
34
  - no-cache
35
+ Content-Type:
36
+ - application/json; charset=utf-8
37
+ Transfer-Encoding:
38
+ - chunked
39
+ Server:
40
+ - Jetty(9.2.9.v20150224)
43
41
  Strict-Transport-Security:
44
- - max-age=31536000; includeSubDomains; preload
42
+ - max-age=15552015; preload
43
+ Public-Key-Pins:
44
+ - pin-sha256="cN0QSpPIkuwpT6iP2YjEo1bEwGpH/yiUn6yhdy+HNto="; pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";
45
+ pin-sha256="LrKdTxZLRTvyHM4/atX2nquX9BeHRZMCxg3cf4rhc2I="; max-age=864000
46
+ X-Frame-Options:
47
+ - deny
48
+ X-Xss-Protection:
49
+ - 1; mode=block
45
50
  body:
46
51
  encoding: UTF-8
47
52
  string: '{"messages":[],"source":{"type":"text/html","encoding":"UTF-8","code":"<!DOCTYPE
@@ -49,5 +54,5 @@ http_interactions:
49
54
 
50
55
  '
51
56
  http_version:
52
- recorded_at: Fri, 10 Mar 2017 20:24:28 GMT
57
+ recorded_at: Fri, 30 Jun 2017 20:45:19 GMT
53
58
  recorded_with: VCR 3.0.3
@@ -32,8 +32,8 @@ class Nanoc::Helpers::BloggingTest < Nanoc::TestCase
32
32
  super
33
33
 
34
34
  config = Nanoc::Int::Configuration.new.with_defaults
35
- items = Nanoc::Int::IdentifiableCollection.new(config)
36
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
35
+ items = Nanoc::Int::ItemCollection.new(config)
36
+ layouts = Nanoc::Int::LayoutCollection.new(config)
37
37
  dep_store = Nanoc::Int::DependencyStore.new(items, layouts, config)
38
38
  dependency_tracker = Nanoc::Int::DependencyTracker.new(dep_store)
39
39
 
@@ -9,8 +9,8 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
9
9
  super
10
10
 
11
11
  config = Nanoc::Int::Configuration.new.with_defaults
12
- items = Nanoc::Int::IdentifiableCollection.new(config)
13
- layouts = Nanoc::Int::IdentifiableCollection.new(config)
12
+ items = Nanoc::Int::ItemCollection.new(config)
13
+ layouts = Nanoc::Int::LayoutCollection.new(config)
14
14
  dep_store = Nanoc::Int::DependencyStore.new(items, layouts, config)
15
15
  dependency_tracker = Nanoc::Int::DependencyTracker.new(dep_store)
16
16
 
@@ -57,7 +57,7 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
57
57
  create_item_rep(item.unwrap, :four_a, nil)
58
58
 
59
59
  # Create items
60
- @items = Nanoc::Int::IdentifiableCollection.new({}, items)
60
+ @items = Nanoc::Int::ItemCollection.new({}, items)
61
61
 
62
62
  # Create sitemap item
63
63
  @item = Nanoc::ItemWithRepsView.new(Nanoc::Int::Item.new('sitemap content', {}, '/sitemap/'), @view_context)
@@ -104,7 +104,7 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
104
104
  create_item_rep(item.unwrap, :one_a, '/item-one/a/')
105
105
  create_item_rep(item.unwrap, :one_b, '/item-one/b/')
106
106
  items << nil
107
- @items = Nanoc::Int::IdentifiableCollection.new({})
107
+ @items = Nanoc::Int::ItemCollection.new({})
108
108
 
109
109
  # Create sitemap item
110
110
  @item = Nanoc::Int::Item.new('sitemap content', {}, '/sitemap/')
@@ -137,7 +137,7 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
137
137
  if_have 'builder', 'nokogiri' do
138
138
  # Create items
139
139
  item = Nanoc::ItemWithRepsView.new(Nanoc::Int::Item.new('some content 1', {}, '/item-one/'), @view_context)
140
- @items = Nanoc::Int::IdentifiableCollection.new({}, [item])
140
+ @items = Nanoc::Int::ItemCollection.new({}, [item])
141
141
  create_item_rep(item.unwrap, :one_a, '/item-one/a/')
142
142
  create_item_rep(item.unwrap, :one_b, '/item-one/b/')
143
143
 
@@ -180,7 +180,7 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
180
180
  items << item
181
181
  create_item_rep(item.unwrap, :a_trudy, '/lucas/trudy/')
182
182
  create_item_rep(item.unwrap, :b_mallory, '/lucas/mallory/')
183
- @items = Nanoc::Int::IdentifiableCollection.new({}, items)
183
+ @items = Nanoc::Int::ItemCollection.new({}, items)
184
184
 
185
185
  # Create sitemap item
186
186
  @item = Nanoc::ItemWithRepsView.new(Nanoc::Int::Item.new('sitemap content', {}, '/sitemap/'), @view_context)
@@ -211,7 +211,7 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
211
211
  if_have 'builder', 'nokogiri' do
212
212
  # Create items
213
213
  item = Nanoc::ItemWithRepsView.new(Nanoc::Int::Item.new('some content 1', {}, '/george/'), @view_context)
214
- @items = Nanoc::Int::IdentifiableCollection.new({}, [item])
214
+ @items = Nanoc::Int::ItemCollection.new({}, [item])
215
215
  create_item_rep(item.unwrap, :default, '/cool projects/проверка')
216
216
 
217
217
  # Create sitemap item
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.12
4
+ version: 4.7.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-23 00:00:00.000000000 Z
11
+ date: 2017-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri
@@ -135,7 +135,6 @@ files:
135
135
  - lib/nanoc/base/core_ext.rb
136
136
  - lib/nanoc/base/core_ext/array.rb
137
137
  - lib/nanoc/base/core_ext/hash.rb
138
- - lib/nanoc/base/core_ext/pathname.rb
139
138
  - lib/nanoc/base/core_ext/string.rb
140
139
  - lib/nanoc/base/entities.rb
141
140
  - lib/nanoc/base/entities/action_sequence.rb
@@ -150,8 +149,10 @@ files:
150
149
  - lib/nanoc/base/entities/identifiable_collection.rb
151
150
  - lib/nanoc/base/entities/identifier.rb
152
151
  - lib/nanoc/base/entities/item.rb
152
+ - lib/nanoc/base/entities/item_collection.rb
153
153
  - lib/nanoc/base/entities/item_rep.rb
154
154
  - lib/nanoc/base/entities/layout.rb
155
+ - lib/nanoc/base/entities/layout_collection.rb
155
156
  - lib/nanoc/base/entities/lazy_value.rb
156
157
  - lib/nanoc/base/entities/outdatedness_reasons.rb
157
158
  - lib/nanoc/base/entities/outdatedness_status.rb
@@ -224,6 +225,8 @@ files:
224
225
  - lib/nanoc/base/services/outdatedness_rules/attributes_modified.rb
225
226
  - lib/nanoc/base/services/outdatedness_rules/code_snippets_modified.rb
226
227
  - lib/nanoc/base/services/outdatedness_rules/content_modified.rb
228
+ - lib/nanoc/base/services/outdatedness_rules/item_collection_extended.rb
229
+ - lib/nanoc/base/services/outdatedness_rules/layout_collection_extended.rb
227
230
  - lib/nanoc/base/services/outdatedness_rules/not_written.rb
228
231
  - lib/nanoc/base/services/outdatedness_rules/rules_modified.rb
229
232
  - lib/nanoc/base/services/outdatedness_rules/uses_always_outdated_filter.rb
@@ -586,7 +589,6 @@ files:
586
589
  - test/deploying/test_fog.rb
587
590
  - test/deploying/test_git.rb
588
591
  - test/deploying/test_rsync.rb
589
- - test/extra/core_ext/test_pathname.rb
590
592
  - test/extra/core_ext/test_time.rb
591
593
  - test/extra/test_link_collector.rb
592
594
  - test/extra/test_piper.rb