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