Reduce array traversal in Jekyll::Reader (#7157)

Merge pull request 7157
This commit is contained in:
Ashwin Maroli 2018-12-16 21:44:32 +05:30 committed by jekyllbot
parent 0f5697c4ea
commit 18fb5687f4
1 changed files with 13 additions and 5 deletions

View File

@ -39,13 +39,21 @@ module Jekyll
return unless File.directory?(base)
dot_dirs = []
dot_pages = []
dot_static_files = []
dot = Dir.chdir(base) { filter_entries(Dir.entries("."), base) }
dot_dirs = dot.select { |file| File.directory?(@site.in_source_dir(base, file)) }
dot_files = (dot - dot_dirs)
dot_pages = dot_files.select do |file|
Utils.has_yaml_header?(@site.in_source_dir(base, file))
dot.each do |entry|
file_path = @site.in_source_dir(base, entry)
if File.directory?(file_path)
dot_dirs << entry
elsif Utils.has_yaml_header?(file_path)
dot_pages << entry
else
dot_static_files << entry
end
end
dot_static_files = dot_files - dot_pages
retrieve_posts(dir)
retrieve_dirs(base, dir, dot_dirs)