class Lookbook::PagesController

def self.controller_path

def self.controller_path
  "lookbook/pages"
end

def index

def index
  landing = Lookbook.pages.find(&:landing) || Lookbook.pages.first
  if landing.present?
    redirect_to lookbook_page_path landing.lookup_path
  else
    show_404
  end
end

def page_controller

def page_controller
  controller_class = Lookbook.config.page_controller.constantize
  controller = controller_class.new
  controller.request = request
  controller
end

def show

def show
  @page = @pages.find_by_path(params[:path])
  if @page
    @next_page = @pages.find_next(@page)
    @previous_page = @pages.find_previous(@page)
    if @page.errors.any?
      render_in_layout "lookbook/error",
        layout: "lookbook/page",
        error: @page.errors.first
    else
      begin
        @page_content = page_controller.render_page(@page)
        @title = @page.title
      rescue => exception
        render_in_layout "lookbook/error",
          layout: "lookbook/page",
          error: Lookbook::Error.new(exception, file_path: @page.full_path, source_code: @page.content)
      end
    end
  else
    show_404
  end
end

def show_404

def show_404
  render "lookbook/404", locals: {
    message: "Page not found",
    description: "The page may have been removed or renamed."
  }
end