nanoc 4.4.6 → 4.4.7
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +11 -13
- data/LICENSE +1 -1
- data/NEWS.md +11 -0
- data/README.md +1 -1
- data/lib/nanoc.rb +1 -1
- data/lib/nanoc/base/repos.rb +1 -0
- data/lib/nanoc/base/repos/outdatedness_store.rb +49 -0
- data/lib/nanoc/base/services/compiler.rb +286 -152
- data/lib/nanoc/base/services/compiler_loader.rb +4 -0
- data/lib/nanoc/base/services/outdatedness_checker.rb +2 -6
- data/lib/nanoc/checking/checks/external_links.rb +0 -2
- data/lib/nanoc/data_sources/filesystem.rb +13 -4
- data/lib/nanoc/version.rb +1 -1
- data/spec/nanoc/base/compiler_spec.rb +54 -14
- data/spec/nanoc/base/repos/outdatedness_store_spec.rb +100 -0
- data/spec/nanoc/base/services/outdatedness_checker_spec.rb +15 -6
- data/spec/nanoc/base/services/outdatedness_rules_spec.rb +12 -4
- data/spec/nanoc/cli/commands/view_spec.rb +2 -0
- data/spec/nanoc/data_sources/filesystem_spec.rb +13 -1
- data/spec/nanoc/extra/parallel_collection_spec.rb +2 -2
- data/spec/nanoc/integration/outdatedness_integration_spec.rb +8 -0
- data/spec/nanoc/integration/partial_recompilation_spec.rb +48 -0
- data/spec/nanoc/regressions/gh_1045_spec.rb +48 -0
- data/spec/nanoc/regressions/gh_1047_spec.rb +28 -0
- data/test/base/test_compiler.rb +1 -0
- metadata +7 -2
@@ -0,0 +1,48 @@
|
|
1
|
+
describe 'Partial recompilation', site: true, stdio: true do
|
2
|
+
before do
|
3
|
+
File.write('content/foo.md', "---\ntitle: hello\n---\n\nfoo")
|
4
|
+
File.write('content/bar.md', '<%= @items["/foo.*"].compiled_content %><% raise "boom" %>')
|
5
|
+
|
6
|
+
File.write('Rules', <<EOS)
|
7
|
+
compile '/foo.*' do
|
8
|
+
write '/foo.html'
|
9
|
+
end
|
10
|
+
|
11
|
+
compile '/bar.*' do
|
12
|
+
filter :erb
|
13
|
+
write '/bar.html'
|
14
|
+
end
|
15
|
+
EOS
|
16
|
+
end
|
17
|
+
|
18
|
+
example do
|
19
|
+
expect(File.file?('output/foo.html')).not_to be
|
20
|
+
expect(File.file?('output/bar.html')).not_to be
|
21
|
+
|
22
|
+
expect { Nanoc::CLI.run(%w(show-data --no-color)) }
|
23
|
+
.to(output(/^item \/foo\.md, rep default:\n is outdated: /).to_stdout)
|
24
|
+
expect { Nanoc::CLI.run(%w(show-data --no-color)) }
|
25
|
+
.to(output(/^item \/bar\.md, rep default:\n is outdated: /).to_stdout)
|
26
|
+
|
27
|
+
expect { Nanoc::CLI.run(%w(compile --verbose)) rescue nil }
|
28
|
+
.to output(/create.*output\/foo\.html/).to_stdout
|
29
|
+
|
30
|
+
expect { Nanoc::CLI.run(%w(show-data --no-color)) }
|
31
|
+
.to(output(/^item \/foo\.md, rep default:\n is not outdated/).to_stdout)
|
32
|
+
expect { Nanoc::CLI.run(%w(show-data --no-color)) }
|
33
|
+
.to(output(/^item \/bar\.md, rep default:\n is outdated: /).to_stdout)
|
34
|
+
|
35
|
+
expect(File.file?('output/foo.html')).to be
|
36
|
+
expect(File.file?('output/bar.html')).not_to be
|
37
|
+
|
38
|
+
File.write('content/bar.md', '<% raise "boom" %>')
|
39
|
+
|
40
|
+
expect { Nanoc::CLI.run(%w(compile --verbose --debug)) rescue nil }
|
41
|
+
.to output(/skip.*output\/foo\.html/).to_stdout
|
42
|
+
|
43
|
+
expect { Nanoc::CLI.run(%w(show-data --no-color)) }
|
44
|
+
.to(output(/^item \/foo\.md, rep default:\n is not outdated/).to_stdout)
|
45
|
+
expect { Nanoc::CLI.run(%w(show-data --no-color)) }
|
46
|
+
.to(output(/^item \/bar\.md, rep default:\n is outdated: /).to_stdout)
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
describe 'GH-1045', site: true, stdio: true do
|
2
|
+
before do
|
3
|
+
File.write('content/foo.txt', 'foo')
|
4
|
+
FileUtils.touch('content/foo.txt', mtime: Time.parse('2015-03-02 10:00:00Z'))
|
5
|
+
|
6
|
+
File.write('content/sitemap.erb', '<%= xml_sitemap(items: items.select { |i| i.path.end_with?(\'/\') }) %>')
|
7
|
+
|
8
|
+
File.write('nanoc.yaml', <<EOS)
|
9
|
+
base_url: 'http://example.com'
|
10
|
+
EOS
|
11
|
+
|
12
|
+
File.write('lib/default.rb', <<EOS)
|
13
|
+
include Nanoc::Helpers::XMLSitemap
|
14
|
+
EOS
|
15
|
+
|
16
|
+
File.write('Rules', <<EOS)
|
17
|
+
compile '/*.txt' do
|
18
|
+
write item.identifier.without_ext + '/index.html'
|
19
|
+
end
|
20
|
+
|
21
|
+
compile '/sitemap.erb' do
|
22
|
+
filter :erb
|
23
|
+
write item.identifier.without_ext + '.xml'
|
24
|
+
end
|
25
|
+
EOS
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'creates the sitemap' do
|
29
|
+
Nanoc::CLI.run(%w(compile))
|
30
|
+
|
31
|
+
expect(File.file?('output/sitemap.xml')).to be
|
32
|
+
contents = File.read('output/sitemap.xml')
|
33
|
+
expect(contents).to match(%r{<loc>http://example.com/foo/</loc>})
|
34
|
+
expect(contents).to match(%r{<lastmod>2015-03-02</lastmod>})
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'updates the sitemap' do
|
38
|
+
Nanoc::CLI.run(%w(compile))
|
39
|
+
File.write('content/foo.txt', 'foo 2')
|
40
|
+
FileUtils.touch('content/foo.txt', mtime: Time.parse('2016-04-03 10:00:00Z'))
|
41
|
+
Nanoc::CLI.run(%w(compile))
|
42
|
+
|
43
|
+
expect(File.file?('output/sitemap.xml')).to be
|
44
|
+
contents = File.read('output/sitemap.xml')
|
45
|
+
expect(contents).to match(%r{<loc>http://example.com/foo/</loc>})
|
46
|
+
expect(contents).to match(%r{<lastmod>2016-04-03</lastmod>})
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
describe 'GH-1047', site: true, stdio: true do
|
2
|
+
before do
|
3
|
+
File.write('Rules', <<EOS)
|
4
|
+
compile '/*' do
|
5
|
+
filter :erb
|
6
|
+
write item.identifier
|
7
|
+
end
|
8
|
+
EOS
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'does not reuse old content' do
|
12
|
+
File.write('content/foo.md', 'I am old foo!')
|
13
|
+
File.write('content/bar.md', 'I am old bar!')
|
14
|
+
Nanoc::CLI.run(%w(compile))
|
15
|
+
expect(File.read('output/foo.md')).to eql('I am old foo!')
|
16
|
+
expect(File.read('output/bar.md')).to eql('I am old bar!')
|
17
|
+
|
18
|
+
File.write('content/foo.md', 'I am foo!')
|
19
|
+
File.write('content/bar.md', '<%= @items["/foo.*"].compiled_content %><%= raise "boom" %>')
|
20
|
+
expect { Nanoc::CLI.run(%w(compile)) }.to raise_error(Nanoc::Int::Errors::CompilationError)
|
21
|
+
expect(File.read('output/foo.md')).to eql('I am foo!')
|
22
|
+
|
23
|
+
File.write('content/bar.md', '[<%= @items["/foo.*"].compiled_content %>]')
|
24
|
+
Nanoc::CLI.run(%w(compile))
|
25
|
+
expect(File.read('output/foo.md')).to eql('I am foo!')
|
26
|
+
expect(File.read('output/bar.md')).to eql('[I am foo!]')
|
27
|
+
end
|
28
|
+
end
|
data/test/base/test_compiler.rb
CHANGED
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.4.
|
4
|
+
version: 4.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Defreyne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cri
|
@@ -154,6 +154,7 @@ files:
|
|
154
154
|
- lib/nanoc/base/repos/data_source.rb
|
155
155
|
- lib/nanoc/base/repos/dependency_store.rb
|
156
156
|
- lib/nanoc/base/repos/item_rep_repo.rb
|
157
|
+
- lib/nanoc/base/repos/outdatedness_store.rb
|
157
158
|
- lib/nanoc/base/repos/rule_memory_store.rb
|
158
159
|
- lib/nanoc/base/repos/site_loader.rb
|
159
160
|
- lib/nanoc/base/repos/store.rb
|
@@ -333,6 +334,7 @@ files:
|
|
333
334
|
- spec/nanoc/base/repos/compiled_content_cache_spec.rb
|
334
335
|
- spec/nanoc/base/repos/config_loader_spec.rb
|
335
336
|
- spec/nanoc/base/repos/dependency_store_spec.rb
|
337
|
+
- spec/nanoc/base/repos/outdatedness_store_spec.rb
|
336
338
|
- spec/nanoc/base/repos/site_loader_spec.rb
|
337
339
|
- spec/nanoc/base/services/dependency_tracker_spec.rb
|
338
340
|
- spec/nanoc/base/services/executor_spec.rb
|
@@ -386,10 +388,13 @@ files:
|
|
386
388
|
- spec/nanoc/helpers/tagging_spec.rb
|
387
389
|
- spec/nanoc/helpers/text_spec.rb
|
388
390
|
- spec/nanoc/integration/outdatedness_integration_spec.rb
|
391
|
+
- spec/nanoc/integration/partial_recompilation_spec.rb
|
389
392
|
- spec/nanoc/regressions/gh_1015_spec.rb
|
390
393
|
- spec/nanoc/regressions/gh_1031_spec.rb
|
391
394
|
- spec/nanoc/regressions/gh_1035_spec.rb
|
392
395
|
- spec/nanoc/regressions/gh_1040_spec.rb
|
396
|
+
- spec/nanoc/regressions/gh_1045_spec.rb
|
397
|
+
- spec/nanoc/regressions/gh_1047_spec.rb
|
393
398
|
- spec/nanoc/regressions/gh_761_spec.rb
|
394
399
|
- spec/nanoc/regressions/gh_767_spec.rb
|
395
400
|
- spec/nanoc/regressions/gh_769_spec.rb
|