Sha256: 71747210954cdb67de1ffe1f42a7846fb7f4a1fa76ae8d1b66d597e7357149e9

Contents?: true

Size: 1.34 KB

Versions: 12

Compression:

Stored size: 1.34 KB

Contents

module Lookbook
  class PagesController < ApplicationController
    layout "lookbook/page"
    helper_method :page_controller
    helper Lookbook::PageHelper

    def self.controller_path
      "lookbook/pages"
    end

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

    def show
      @page = @pages.find_by_path(params[:path])
      if @page
        @next_page = @pages.next(@page)
        @previous_page = @pages.previous(@page)
        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.file_path, source_code: @page.content)
        end
      else
        show_404
      end
    end

    protected

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

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

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
lookbook-1.5.5 app/controllers/lookbook/pages_controller.rb
lookbook-1.5.4 app/controllers/lookbook/pages_controller.rb
lookbook-1.5.3 app/controllers/lookbook/pages_controller.rb
lookbook-1.5.2 app/controllers/lookbook/pages_controller.rb
lookbook-1.5.1 app/controllers/lookbook/pages_controller.rb
lookbook-1.5.0 app/controllers/lookbook/pages_controller.rb
lookbook-1.4.5 app/controllers/lookbook/pages_controller.rb
lookbook-1.4.4 app/controllers/lookbook/pages_controller.rb
lookbook-1.4.3 app/controllers/lookbook/pages_controller.rb
lookbook-1.4.2 app/controllers/lookbook/pages_controller.rb
lookbook-1.4.1 app/controllers/lookbook/pages_controller.rb
lookbook-1.4.0 app/controllers/lookbook/pages_controller.rb