From 2857350df1e1f74d5e453f125074760e6ba211e8 Mon Sep 17 00:00:00 2001 From: Martin Jorn Rogalla Date: Wed, 4 Mar 2015 20:51:26 +0100 Subject: [PATCH] Extracted `read_directories` from site.rb into reader.rb - Extracted - Updated References - Ran Tests Signed-off-by: Martin Jorn Rogalla 0 # limit the posts if :limit_posts option is set + + entries.each do |f| + f_abs = in_source_dir(base, f) + if File.directory?(f_abs) + f_rel = File.join(dir, f) + read_directories(f_rel) unless site.dest.sub(/\/$/, '') == f_abs + elsif Utils.has_yaml_header?(f_abs) + page = Page.new(site, site.source, dir, f) + site.pages << page if site.publisher.publish?(page) + else + site.static_files << StaticFile.new(site, site.source, dir, f) + end + end + + site.pages.sort_by!(&:name) + site.static_files.sort_by!(&:relative_path) + end + # Read all the files in //_posts and create a new Post # object with each one. # diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index ce2374d4..59ffd5aa 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -130,44 +130,11 @@ module Jekyll # Returns nothing. def read self.layouts = LayoutReader.new(self).read - read_directories + reader.read_directories reader.read_data(config['data_source']) read_collections end - # Recursively traverse directories to find posts, pages and static files - # that will become part of the site according to the rules in - # filter_entries. - # - # dir - The String relative path of the directory to read. Default: ''. - # - # Returns nothing. - def read_directories(dir = '') - base = reader.in_source_dir(dir) - entries = Dir.chdir(base) { reader.filter_entries(Dir.entries('.'), base) } - - reader.read_posts(dir) - reader.read_drafts(dir) if show_drafts - posts.sort! - reader.limit_posts() if limit_posts > 0 # limit the posts if :limit_posts option is set - - entries.each do |f| - f_abs = reader.in_source_dir(base, f) - if File.directory?(f_abs) - f_rel = File.join(dir, f) - read_directories(f_rel) unless dest.sub(/\/$/, '') == f_abs - elsif Utils.has_yaml_header?(f_abs) - page = Page.new(self, source, dir, f) - pages << page if publisher.publish?(page) - else - static_files << StaticFile.new(self, source, dir, f) - end - end - - pages.sort_by!(&:name) - static_files.sort_by!(&:relative_path) - end - # Read in all collections specified in the configuration # # Returns nothing. diff --git a/test/test_entry_filter.rb b/test/test_entry_filter.rb index 341828ba..77fb81ce 100644 --- a/test/test_entry_filter.rb +++ b/test/test_entry_filter.rb @@ -62,7 +62,7 @@ class TestEntryFilter < JekyllUnitTest should "not include symlinks in safe mode" do site = Site.new(site_configuration('safe' => true)) - site.read_directories("symlink-test") + site.reader.read_directories("symlink-test") assert_equal [], site.pages assert_equal [], site.static_files end @@ -70,7 +70,7 @@ class TestEntryFilter < JekyllUnitTest should "include symlinks in unsafe mode" do site = Site.new(site_configuration) - site.read_directories("symlink-test") + site.reader.read_directories("symlink-test") refute_equal [], site.pages refute_equal [], site.static_files end