class Photish::Render::GalleryPage

Attributes

layout_file[R]
output_dir[R]

Public Class Methods

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

Public Instance Methods

render(pages) click to toggle source
# File lib/photish/render/gallery_page.rb, line 11
def render(pages)
  render_all(pages)
end

Private Instance Methods

layout() click to toggle source
# File lib/photish/render/gallery_page.rb, line 43
def layout
  @layout ||= Tilt.new(layout_file)
end
relative_to_output_dir(url_parts) click to toggle source
# File lib/photish/render/gallery_page.rb, line 33
def relative_to_output_dir(url_parts)
  File.join(output_dir, url_parts)
end
render_all(pages) click to toggle source
# File lib/photish/render/gallery_page.rb, line 20
def render_all(pages)
  Array(pages).each do |page|
    rendered_model = render_with_layout(page)
    output_model_file = relative_to_output_dir(page.url_parts)
    output_model_dir = relative_to_output_dir(page.base_url_parts)

    log.debug "Rendering #{page.url} to #{output_model_file}"

    FileUtils.mkdir_p(output_model_dir)
    File.write(output_model_file, rendered_model)
  end
end
render_with_layout(page) click to toggle source
# File lib/photish/render/gallery_page.rb, line 37
def render_with_layout(page)
  layout.render(page) do
    Tilt.new(page.path).render(page)
  end
end