class Jekyll::LayoutReader

def entries_in(dir)

def entries_in(dir)
  entries = []
  within(dir) do
    entries = EntryFilter.new(site).filter(Dir["**/*.*"])
  end
  entries
end

def initialize(site)

def initialize(site)
  @site = site
  @layouts = {}
end

def layout_directory

def layout_directory
  @layout_directory ||= site.in_source_dir(site.config["layouts_dir"])
end

def layout_entries

def layout_entries
  entries_in layout_directory
end

def layout_name(file)

def layout_name(file)
  file.split(".")[0..-2].join(".")
end

def read

def read
  layout_entries.each do |layout_file|
    @layouts[layout_name(layout_file)] = \
      Layout.new(site, layout_directory, layout_file)
  end
  theme_layout_entries.each do |layout_file|
    @layouts[layout_name(layout_file)] ||= \
      Layout.new(site, theme_layout_directory, layout_file)
  end
  @layouts
end

def theme_layout_directory

def theme_layout_directory
  @theme_layout_directory ||= site.theme.layouts_path if site.theme
end

def theme_layout_entries

def theme_layout_entries
  theme_layout_directory ? entries_in(theme_layout_directory) : []
end

def within(directory)

def within(directory)
  return unless File.exist?(directory)
  Dir.chdir(directory) { yield }
end