class Jekyll::LayoutReader

Attributes

site[R]

Public Class Methods

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

Public Instance Methods

layout_directory() click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 25
def layout_directory
  @layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source)
end
read() click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 11
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/ngage/jekyll/readers/layout_reader.rb, line 29
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/ngage/jekyll/readers/layout_reader.rb, line 43
def entries_in(dir)
  entries = []
  within(dir) do
    entries = EntryFilter.new(site).filter(Dir["**/*.*"])
  end
  entries
end
layout_directory_in_cwd() click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 65
def layout_directory_in_cwd
  dir = Jekyll.sanitized_path(Dir.pwd, site.config["layouts_dir"])
  dir if File.directory?(dir) && !site.safe
end
layout_directory_inside_source() click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 61
def layout_directory_inside_source
  site.in_source_dir(site.config["layouts_dir"])
end
layout_entries() click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 35
def layout_entries
  entries_in layout_directory
end
layout_name(file) click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 51
def layout_name(file)
  file.split(".")[0..-2].join(".")
end
theme_layout_entries() click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 39
def theme_layout_entries
  theme_layout_directory ? entries_in(theme_layout_directory) : []
end
within(directory) { || ... } click to toggle source
# File lib/ngage/jekyll/readers/layout_reader.rb, line 55
def within(directory)
  return unless File.exist?(directory)

  Dir.chdir(directory) { yield }
end