nanoc 4.7.12 → 4.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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