Merge pull request #3849 from shinkondo/master

Merge pull request 3849
This commit is contained in:
jekyllbot 2016-03-24 13:54:03 -07:00
commit 7a4817e55a
2 changed files with 37 additions and 2 deletions

View File

@ -95,11 +95,12 @@ module Jekyll
# Private: Creates a regular expression from the config's keep_files array
#
# Examples
# ['.git','.svn'] creates the following regex: /\/(\.git|\/.svn)/
# ['.git','.svn'] with site.dest "/myblog/_site" creates
# the following regex: /\A\/myblog\/_site\/(\.git|\/.svn)/
#
# Returns the regular expression
def keep_file_regex
Regexp.union(site.keep_files)
/\A#{Regexp.quote(site.dest)}\/(#{Regexp.union(site.keep_files).source})/
end
end
end

View File

@ -37,6 +37,40 @@ class TestCleaner < JekyllUnitTest
end
end
context "not-nested directory in keep_files and similary named directory not in keep_files" do
setup do
clear_dest
FileUtils.mkdir_p(dest_dir('.git/child_dir'))
FileUtils.mkdir_p(dest_dir('username.github.io'))
FileUtils.touch(File.join(dest_dir('.git'), 'index.html'))
FileUtils.touch(File.join(dest_dir('username.github.io'), 'index.html'))
@site = fixture_site
@site.keep_files = ['.git']
@cleaner = Cleaner.new(@site)
@cleaner.cleanup!
end
teardown do
FileUtils.rm_rf(dest_dir('.git'))
FileUtils.rm_rf(dest_dir('username.github.io'))
end
should "keep the file in the directory in keep_files" do
assert File.exist?(File.join(dest_dir('.git'), 'index.html'))
end
should "delete the file in the directory not in keep_files" do
assert !File.exist?(File.join(dest_dir('username.github.io'), 'index.html'))
end
should "delete the directory not in keep_files" do
assert !File.exist?(dest_dir('username.github.io'))
end
end
context "directory containing no files and non-empty directories" do
setup do
clear_dest