From 18fb5687f4c605ac1dd6fb7abbdcd4f352eb313b Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Sun, 16 Dec 2018 21:44:32 +0530 Subject: [PATCH] Reduce array traversal in Jekyll::Reader (#7157) Merge pull request 7157 --- lib/jekyll/reader.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/jekyll/reader.rb b/lib/jekyll/reader.rb index eeb71749..c50ad78a 100644 --- a/lib/jekyll/reader.rb +++ b/lib/jekyll/reader.rb @@ -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)