nanoc 4.7.12 → 4.7.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS.md +6 -0
- data/lib/nanoc/base/core_ext.rb +0 -1
- data/lib/nanoc/base/entities.rb +4 -1
- data/lib/nanoc/base/entities/dependency.rb +5 -4
- data/lib/nanoc/base/entities/directed_graph.rb +12 -0
- data/lib/nanoc/base/entities/identifiable_collection.rb +11 -6
- data/lib/nanoc/base/entities/item_collection.rb +14 -0
- data/lib/nanoc/base/entities/layout_collection.rb +14 -0
- data/lib/nanoc/base/entities/outdatedness_reasons.rb +19 -0
- data/lib/nanoc/base/entities/props.rb +33 -10
- data/lib/nanoc/base/repos/aggregate_data_source.rb +2 -2
- data/lib/nanoc/base/repos/checksum_store.rb +1 -1
- data/lib/nanoc/base/repos/dependency_store.rb +25 -12
- data/lib/nanoc/base/services/dependency_tracker.rb +3 -2
- data/lib/nanoc/base/services/outdatedness_checker.rb +33 -10
- data/lib/nanoc/base/services/outdatedness_rules.rb +2 -0
- data/lib/nanoc/base/services/outdatedness_rules/item_collection_extended.rb +16 -0
- data/lib/nanoc/base/services/outdatedness_rules/layout_collection_extended.rb +16 -0
- data/lib/nanoc/base/services/pruner.rb +13 -1
- data/lib/nanoc/base/views/identifiable_collection_view.rb +24 -0
- data/lib/nanoc/cli/commands/show-data.rb +4 -0
- data/lib/nanoc/spec.rb +2 -2
- data/lib/nanoc/version.rb +1 -1
- data/spec/nanoc/base/checksummer_spec.rb +4 -4
- data/spec/nanoc/base/compiler_spec.rb +2 -2
- data/spec/nanoc/base/directed_graph_spec.rb +42 -0
- data/spec/nanoc/base/entities/identifiable_collection_spec.rb +110 -93
- data/spec/nanoc/base/entities/props_spec.rb +121 -1
- data/spec/nanoc/base/entities/site_spec.rb +2 -2
- data/spec/nanoc/base/repos/dependency_store_spec.rb +34 -40
- data/spec/nanoc/base/services/compiler/stages/calculate_checksums_spec.rb +2 -2
- data/spec/nanoc/base/services/compiler/stages/compile_reps_spec.rb +2 -2
- data/spec/nanoc/base/services/dependency_tracker_spec.rb +3 -4
- data/spec/nanoc/base/services/outdatedness_checker_spec.rb +290 -4
- data/spec/nanoc/base/services/outdatedness_rules_spec.rb +3 -3
- data/spec/nanoc/base/services/pruner_spec.rb +9 -0
- data/spec/nanoc/base/views/document_view_spec.rb +3 -4
- data/spec/nanoc/base/views/identifiable_collection_view_spec.rb +74 -7
- data/spec/nanoc/base/views/item_collection_with_reps_view_spec.rb +2 -1
- data/spec/nanoc/base/views/item_collection_without_reps_view_spec.rb +2 -1
- data/spec/nanoc/base/views/item_rep_view_spec.rb +3 -4
- data/spec/nanoc/base/views/item_view_spec.rb +5 -6
- data/spec/nanoc/base/views/layout_collection_view_spec.rb +2 -1
- data/spec/nanoc/base/views/mutable_identifiable_collection_view_spec.rb +1 -1
- data/spec/nanoc/base/views/mutable_item_collection_view_spec.rb +3 -2
- data/spec/nanoc/base/views/mutable_layout_collection_view_spec.rb +3 -2
- data/spec/nanoc/base/views/post_compile_item_rep_view_spec.rb +1 -1
- data/spec/nanoc/cli/commands/show_data_spec.rb +4 -4
- data/spec/nanoc/cli/commands/show_rules_spec.rb +2 -2
- data/spec/nanoc/helpers/rendering_spec.rb +5 -0
- data/spec/nanoc/rule_dsl/action_sequence_calculator_spec.rb +2 -2
- data/spec/nanoc/rule_dsl/rule_context_spec.rb +6 -4
- data/test/base/test_dependency_tracker.rb +22 -22
- data/test/base/test_item_array.rb +2 -2
- data/test/filters/test_xsl.rb +2 -2
- data/test/fixtures/vcr_cassettes/html_run_error.yml +17 -12
- data/test/fixtures/vcr_cassettes/html_run_ok.yml +17 -12
- data/test/helpers/test_blogging.rb +2 -2
- data/test/helpers/test_xml_sitemap.rb +7 -7
- metadata +6 -4
- data/lib/nanoc/base/core_ext/pathname.rb +0 -10
- 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::
|
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::
|
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::
|
20
|
-
let(:layouts) { Nanoc::Int::
|
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::
|
12
|
-
let(:layouts) { Nanoc::Int::
|
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::
|
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::
|
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::
|
10
|
-
items = Nanoc::Int::
|
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::
|
27
|
-
items = Nanoc::Int::
|
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::
|
46
|
-
items = Nanoc::Int::
|
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::
|
66
|
-
items = Nanoc::Int::
|
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::
|
87
|
-
items = Nanoc::Int::
|
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::
|
108
|
-
items = Nanoc::Int::
|
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::
|
144
|
-
items = Nanoc::Int::
|
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::
|
153
|
-
new_items = Nanoc::Int::
|
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::
|
183
|
-
items = Nanoc::Int::
|
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::
|
215
|
-
items = Nanoc::Int::
|
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::
|
247
|
-
items = Nanoc::Int::
|
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::
|
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::
|
33
|
+
@items = Nanoc::Int::ItemCollection.new({}, [@one, @two, foo])
|
34
34
|
|
35
35
|
assert_equal foo, @items['/foo/']
|
36
36
|
end
|
data/test/filters/test_xsl.rb
CHANGED
@@ -89,8 +89,8 @@ EOS
|
|
89
89
|
super
|
90
90
|
|
91
91
|
config = Nanoc::Int::Configuration.new
|
92
|
-
items = Nanoc::Int::
|
93
|
-
layouts = Nanoc::Int::
|
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
|
-
-
|
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=
|
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:
|
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,
|
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=
|
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,
|
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::
|
36
|
-
layouts = Nanoc::Int::
|
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::
|
13
|
-
layouts = Nanoc::Int::
|
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::
|
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::
|
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::
|
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::
|
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::
|
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.
|
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-
|
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
|