Sha256: e72b1139fe4833b66ea65138fa29edeef0bc06a71307a873c93e41ca3828780d

Contents?: true

Size: 1.04 KB

Versions: 21

Compression:

Stored size: 1.04 KB

Contents

module Pageflow
  class Page < ActiveRecord::Base
    belongs_to :chapter, :touch => true

    attr_accessor :is_first

    validates_inclusion_of :template, :in => ->(_) { Pageflow.config.page_types.names }

    serialize :configuration, JSON

    scope :displayed_in_navigation, -> { where(:display_in_navigation => true) }

    before_save :ensure_perma_id

    def title
      configuration['title'].presence || configuration['additional_title']
    end

    def thumbnail_url(*args)
      thumbnail_file.thumbnail_url(*args)
    end

    def thumbnail_file
      ThumbnailFileResolver.new(page_type.thumbnail_candidates, configuration).find
    end

    def page_type
      Pageflow.config.page_types.find_by_name!(template)
    end

    def configuration
      super || {}
    end

    def configuration=(value)
      self.display_in_navigation = value['display_in_navigation']
      super
    end

    def copy_to(chapter)
      chapter.pages << dup
    end

    def ensure_perma_id
      self.perma_id ||= (Page.maximum(:perma_id) || 0) + 1
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
pageflow-12.0.4 app/models/pageflow/page.rb
pageflow-12.0.3 app/models/pageflow/page.rb
pageflow-12.0.2 app/models/pageflow/page.rb
pageflow-12.0.1 app/models/pageflow/page.rb
pageflow-12.0.0 app/models/pageflow/page.rb
pageflow-12.0.0.rc7 app/models/pageflow/page.rb
pageflow-12.0.0.rc6 app/models/pageflow/page.rb
pageflow-0.11.4 app/models/pageflow/page.rb
pageflow-12.0.0.rc5 app/models/pageflow/page.rb
pageflow-12.0.0.rc4 app/models/pageflow/page.rb
pageflow-12.0.0.rc3 app/models/pageflow/page.rb
pageflow-12.0.0.rc2 app/models/pageflow/page.rb
pageflow-12.0.0.rc1 app/models/pageflow/page.rb
pageflow-0.11.3 app/models/pageflow/page.rb
pageflow-0.11.2 app/models/pageflow/page.rb
pageflow-0.11.1 app/models/pageflow/page.rb
pageflow-0.11.0 app/models/pageflow/page.rb
pageflow-0.10.0 app/models/pageflow/page.rb
pageflow-0.9.2 app/models/pageflow/page.rb
pageflow-0.9.1 app/models/pageflow/page.rb