class Jekyll::LayoutReader

Attributes

site[R]

Public Class Methods

new(site) click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 7
def initialize(site)
  @site = site
  @layouts = {}
end

Public Instance Methods

layout_directory() click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 26
def layout_directory
  @layout_directory ||= site.in_source_dir(site.config["layouts_dir"])
end
read() click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 12
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
theme_layout_directory() click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 30
def theme_layout_directory
  @theme_layout_directory ||= site.theme.layouts_path if site.theme
end

Private Instance Methods

entries_in(dir) click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 44
def entries_in(dir)
  entries = []
  within(dir) do
    entries = EntryFilter.new(site).filter(Dir["**/*.*"])
  end
  entries
end
layout_entries() click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 36
def layout_entries
  entries_in layout_directory
end
layout_name(file) click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 52
def layout_name(file)
  file.split(".")[0..-2].join(".")
end
theme_layout_entries() click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 40
def theme_layout_entries
  theme_layout_directory ? entries_in(theme_layout_directory) : []
end
within(directory) { || ... } click to toggle source
# File lib/jekyll/readers/layout_reader.rb, line 56
def within(directory)
  return unless File.exist?(directory)

  Dir.chdir(directory) { yield }
end