Sha256: 42b8f0147b8e2508450f4b39a7add56cdc0b458b4d26800f03a8645f012a123e

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

module Pageflow
  class PublishedEntry
    include ActiveModel::Conversion
    extend ActiveModel::Naming

    attr_reader :entry, :revision

    delegate(:account, :theming, :to_model, :to_key, :persisted?, :to => :entry)

    delegate(:chapters, :pages,
             :image_files, :video_files, :audio_files,
             :title, :summary, :credits, :manual_start,
             :to => :revision)

    def initialize(entry, revision = nil)
      @entry = entry
      @revision = revision || entry.published_revision
      @custom_revision = !!revision
    end

    def stylesheet_model
      custom_revision? ? revision : entry
    end

    def thumbnail
      pages.first.try(:thumbnail) || ImageFile.new.processed_attachment
    end

    def self.find(id, scope = Entry)
      PublishedEntry.new(scope.published.find(id))
    end

    def cache_key
      "#{self.class.model_name.cache_key}/#{entry.cache_key}-#{revision.cache_key}"
    end

    private

    def custom_revision?
      @custom_revision
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pageflow-0.2.1 app/models/pageflow/published_entry.rb
pageflow-0.2.0 app/models/pageflow/published_entry.rb