Merge pull request #3717 from alfredxing/regenerator-handle-deleted-files

Merge pull request 3717
This commit is contained in:
Alfred Xing 2015-05-31 11:10:42 -07:00
commit bba7870f8b
2 changed files with 36 additions and 1 deletions

View File

@ -102,7 +102,7 @@ module Jekyll
return cache[dependency] = cache[path] = true
end
end
if data["mtime"].eql? File.mtime(path)
if File.exist?(path) && data["mtime"].eql?(File.mtime(path))
return cache[path] = false
else
return add(path)

View File

@ -89,6 +89,41 @@ class TestRegenerator < JekyllUnitTest
end
end
context "The site regenerator" do
setup do
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
@site = fixture_site({
"full_rebuild" => false
})
@site.read
@post = @site.posts.first
@regenerator = @site.regenerator
@regenerator.regenerate?(@post)
@layout_path = source_dir("_layouts/default.html")
end
teardown do
File.rename(@layout_path + ".tmp", @layout_path)
end
should "handle deleted/nonexistent dependencies" do
assert_equal 1, @regenerator.metadata.size
path = @regenerator.metadata.keys[0]
assert File.exist?(@layout_path)
@regenerator.add_dependency(path, @layout_path)
File.rename(@layout_path, @layout_path + ".tmp")
refute File.exist?(@layout_path)
@regenerator.clear_cache
assert @regenerator.regenerate?(@post)
end
end
context "The site metadata" do
setup do
FileUtils.rm_rf(source_dir(".jekyll-metadata"))