Refactor the LayoutReader class

This commit is contained in:
Matt Rogers 2013-11-10 21:04:11 -06:00
parent f581940c71
commit c5b81d580b
1 changed files with 28 additions and 10 deletions

View File

@ -6,16 +6,34 @@ class LayoutReader
end end
def read def read
base = File.join(site.source, site.config['layouts']) layout_entries.each do |f|
return @layouts unless File.exists?(base) @layouts[layout_name(f)] = Layout.new(site, layout_directory, f)
entries = []
Dir.chdir(base) { entries = EntryFilter.new(site).filter(Dir['**/*.*']) }
entries.each do |f|
name = f.split(".")[0..-2].join(".")
@layouts[name] = Layout.new(site, base, f)
end end
@layouts @layouts
end end
private
def layout_directory
File.join(site.source, site.config['layouts'])
end
def layout_entries
entries = []
with(layout_directory) do
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
end
entries
end
def with(directory)
return unless File.exists?(directory)
Dir.chdir(directory) { yield directory }
end
def layout_name(file)
file.split(".")[0..-2].join(".")
end
end end