Extracted `read_directories` from site.rb into reader.rb
- Extracted - Updated References - Ran Tests Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com
This commit is contained in:
parent
9bcad08e3a
commit
2857350df1
|
@ -74,6 +74,39 @@ module Jekyll
|
||||||
end
|
end
|
||||||
end
|
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 = in_source_dir(dir)
|
||||||
|
entries = Dir.chdir(base) { filter_entries(Dir.entries('.'), base) }
|
||||||
|
|
||||||
|
read_posts(dir)
|
||||||
|
read_drafts(dir) if site.show_drafts
|
||||||
|
site.posts.sort!
|
||||||
|
limit_posts() if site.limit_posts > 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 <source>/<dir>/_posts and create a new Post
|
# Read all the files in <source>/<dir>/_posts and create a new Post
|
||||||
# object with each one.
|
# object with each one.
|
||||||
#
|
#
|
||||||
|
|
|
@ -130,44 +130,11 @@ module Jekyll
|
||||||
# Returns nothing.
|
# Returns nothing.
|
||||||
def read
|
def read
|
||||||
self.layouts = LayoutReader.new(self).read
|
self.layouts = LayoutReader.new(self).read
|
||||||
read_directories
|
reader.read_directories
|
||||||
reader.read_data(config['data_source'])
|
reader.read_data(config['data_source'])
|
||||||
read_collections
|
read_collections
|
||||||
end
|
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
|
# Read in all collections specified in the configuration
|
||||||
#
|
#
|
||||||
# Returns nothing.
|
# Returns nothing.
|
||||||
|
|
|
@ -62,7 +62,7 @@ class TestEntryFilter < JekyllUnitTest
|
||||||
should "not include symlinks in safe mode" do
|
should "not include symlinks in safe mode" do
|
||||||
site = Site.new(site_configuration('safe' => true))
|
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.pages
|
||||||
assert_equal [], site.static_files
|
assert_equal [], site.static_files
|
||||||
end
|
end
|
||||||
|
@ -70,7 +70,7 @@ class TestEntryFilter < JekyllUnitTest
|
||||||
should "include symlinks in unsafe mode" do
|
should "include symlinks in unsafe mode" do
|
||||||
site = Site.new(site_configuration)
|
site = Site.new(site_configuration)
|
||||||
|
|
||||||
site.read_directories("symlink-test")
|
site.reader.read_directories("symlink-test")
|
||||||
refute_equal [], site.pages
|
refute_equal [], site.pages
|
||||||
refute_equal [], site.static_files
|
refute_equal [], site.static_files
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue