class Bunto::LayoutReader
Attributes
site[R]
Public Class Methods
new(site)
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 4 def initialize(site) @site = site @layouts = {} end
Public Instance Methods
layout_directory()
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 23 def layout_directory @layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source) end
read()
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 9 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/bunto/readers/layout_reader.rb, line 27 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/bunto/readers/layout_reader.rb, line 41 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/bunto/readers/layout_reader.rb, line 62 def layout_directory_in_cwd dir = Bunto.sanitized_path(Dir.pwd, site.config["layouts_dir"]) if File.directory?(dir) && !site.safe dir end end
layout_directory_inside_source()
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 58 def layout_directory_inside_source site.in_source_dir(site.config["layouts_dir"]) end
layout_entries()
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 33 def layout_entries entries_in layout_directory end
layout_name(file)
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 49 def layout_name(file) file.split(".")[0..-2].join(".") end
theme_layout_entries()
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 37 def theme_layout_entries theme_layout_directory ? entries_in(theme_layout_directory) : [] end
within(directory) { || ... }
click to toggle source
# File lib/bunto/readers/layout_reader.rb, line 53 def within(directory) return unless File.exist?(directory) Dir.chdir(directory) { yield } end