Refactor the LayoutReader class
This commit is contained in:
parent
f581940c71
commit
c5b81d580b
|
@ -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 = []
|
end
|
||||||
Dir.chdir(base) { entries = EntryFilter.new(site).filter(Dir['**/*.*']) }
|
|
||||||
|
|
||||||
entries.each do |f|
|
@layouts
|
||||||
name = f.split(".")[0..-2].join(".")
|
|
||||||
@layouts[name] = Layout.new(site, base, f)
|
|
||||||
end
|
|
||||||
|
|
||||||
@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
|
||||||
|
|
Loading…
Reference in New Issue