class Photish::Render::Site
Attributes
config[R]
Public Class Methods
new(config)
click to toggle source
# File lib/photish/render/site.rb, line 4 def initialize(config) @config = config end
Public Instance Methods
all_for(collection)
click to toggle source
# File lib/photish/render/site.rb, line 8 def all_for(collection) delete_unknown_files(collection.all_url_parts) delete_empty_folders move_non_ignored_site_contents collection_template.render(collection) render_asset_pages(collection) end
Private Instance Methods
asset_page_paths()
click to toggle source
# File lib/photish/render/site.rb, line 35 def asset_page_paths Dir["#{site_dir}/**/*.#{page_extension}"].reject do |dir| dir.include? "#{File::SEPARATOR}_" end end
collection_template()
click to toggle source
# File lib/photish/render/site.rb, line 68 def collection_template Template.new(layout_file, template_collection_file, output_dir) end
delete_empty_folders()
click to toggle source
# File lib/photish/render/site.rb, line 47 def delete_empty_folders Dir["#{output_dir}/**/"].reverse_each do |d| FileUtils.rm_rf(d) if empty_dir?(d) end end
delete_unknown_files(url_parts)
click to toggle source
# File lib/photish/render/site.rb, line 59 def delete_unknown_files(url_parts) keep = Set.new(url_parts.map { |url| File.join(output_dir, url) } .map(&:to_s)) files_to_delete = Dir["#{output_dir}/**/*"].select do |f| File.file?(f) && !keep.include?(f) end FileUtils.rm_rf(files_to_delete) end
empty_dir?(dir)
click to toggle source
# File lib/photish/render/site.rb, line 53 def empty_dir?(dir) Dir.entries(dir) .reject { |d| File.basename(d).starts_with?('.') } .empty? end
layout_file()
click to toggle source
# File lib/photish/render/site.rb, line 78 def layout_file File.join(site_dir, templates_dir, templates.layout) end
move_non_ignored_site_contents()
click to toggle source
# File lib/photish/render/site.rb, line 41 def move_non_ignored_site_contents FileUtils.mkdir_p(output_dir) FileUtils.cp_r(non_ignored_site_contents, File.join([output_dir, url.base].compact)) end
non_ignored_site_contents()
click to toggle source
# File lib/photish/render/site.rb, line 74 def non_ignored_site_contents Dir.glob(File.join(site_dir, '[!_]*')) end
render_asset_pages(collection)
click to toggle source
# File lib/photish/render/site.rb, line 28 def render_asset_pages(collection) AssetPage.new(collection, output_dir, site_dir, url).render(asset_page_paths) end
template_collection_file()
click to toggle source
# File lib/photish/render/site.rb, line 82 def template_collection_file File.join(site_dir, templates_dir, templates.collection) end
templates_dir()
click to toggle source
# File lib/photish/render/site.rb, line 86 def templates_dir '_templates' end