class Jekyll::LayoutReader
Attributes
site[R]
Public Class Methods
new(site)
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 4 def initialize(site) @site = site @layouts = {} end
Public Instance Methods
layout_directory()
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 17 def layout_directory @layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source) end
read()
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 9 def read layout_entries.each do |f| @layouts[layout_name(f)] = Layout.new(site, layout_directory, f) end @layouts end
Private Instance Methods
layout_directory_in_cwd()
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 44 def layout_directory_in_cwd dir = Jekyll.sanitized_path(Dir.pwd, site.config['layouts_dir']) if File.directory?(dir) && !site.safe dir else nil end end
layout_directory_inside_source()
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 40 def layout_directory_inside_source site.in_source_dir(site.config['layouts_dir']) end
layout_entries()
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 23 def layout_entries entries = [] within(layout_directory) do entries = EntryFilter.new(site).filter(Dir['**/*.*']) end entries end
layout_name(file)
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 31 def layout_name(file) file.split(".")[0..-2].join(".") end
within(directory) { || ... }
click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 35 def within(directory) return unless File.exist?(directory) Dir.chdir(directory) { yield } end