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