class Photish::Render::AssetPage

Attributes

collection[R]
output_dir[R]
site_dir[R]
url[R]

Public Class Methods

new(collection, output_dir, site_dir, url) click to toggle source
# File lib/photish/render/asset_page.rb, line 6
def initialize(collection, output_dir, site_dir, url)
  @collection = collection
  @output_dir = output_dir
  @site_dir = site_dir
  @url = url
end

Public Instance Methods

render(page_paths) click to toggle source
# File lib/photish/render/asset_page.rb, line 13
def render(page_paths)
  render_all(page_paths)
end

Private Instance Methods

output_model_file(page_path) click to toggle source
# File lib/photish/render/asset_page.rb, line 37
def output_model_file(page_path)
    relative = relative_to_output_dir(page_path)
    dirname = File.dirname(relative)
    filename = relative.sub(dirname, '')
    File.join([dirname, url.base, filename].compact)
end
relative_to_output_dir(page_path) click to toggle source
# File lib/photish/render/asset_page.rb, line 44
def relative_to_output_dir(page_path)
  relative_path = page_path.gsub(site_dir, '')
  basename = File.basename(relative_path, File.extname(relative_path))
  File.join(output_dir, File.dirname(relative_path), basename)
end
render_all(page_paths) click to toggle source
# File lib/photish/render/asset_page.rb, line 24
def render_all(page_paths)
  Array(page_paths).each do |page_path|
    rendered_model = render_page(page_path)
    output_model_file = output_model_file(page_path)
    output_model_dir = File.dirname(output_model_file)

    log.debug "Rendering #{page_path} to #{output_model_file}"

    FileUtils.mkdir_p(output_model_dir)
    File.write(output_model_file, rendered_model)
  end
end
render_page(page_path) click to toggle source
# File lib/photish/render/asset_page.rb, line 50
def render_page(page_path)
  Tilt.new(page_path).render(collection)
end