class Bridgetown::LayoutReader
Attributes
site[R]
Public Class Methods
new(site)
click to toggle source
# File lib/bridgetown-core/readers/layout_reader.rb, line 7 def initialize(site) @site = site @layouts = HashWithDotAccess::Hash.new end
Public Instance Methods
layout_directory()
click to toggle source
# File lib/bridgetown-core/readers/layout_reader.rb, line 28 def layout_directory @layout_directory ||= site.in_source_dir(site.config["layouts_dir"]) end
read()
click to toggle source
# File lib/bridgetown-core/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 Bridgetown::PluginManager.source_manifests.map(&:layouts).compact.each do |plugin_layouts| layout_entries(plugin_layouts).each do |layout_file| @layouts[layout_name(layout_file)] ||= \ Layout.new(site, plugin_layouts, layout_file, from_plugin: true) end end @layouts end
Private Instance Methods
entries_in(dir)
click to toggle source
# File lib/bridgetown-core/readers/layout_reader.rb, line 38 def entries_in(dir) entries = [] within(dir) do entries = EntryFilter.new(site).filter(Dir["**/*.*"]) end entries end
layout_entries(dir = layout_directory)
click to toggle source
# File lib/bridgetown-core/readers/layout_reader.rb, line 34 def layout_entries(dir = layout_directory) entries_in dir end
layout_name(file)
click to toggle source
# File lib/bridgetown-core/readers/layout_reader.rb, line 46 def layout_name(file) Layout.label_for_file(file) end
within(directory) { || ... }
click to toggle source
# File lib/bridgetown-core/readers/layout_reader.rb, line 50 def within(directory) return unless File.exist?(directory) Dir.chdir(directory) { yield } end