Sha256: 34bd12f5a5ec779afbe3409578025a3b35ec25c769a099187479645463403a50

Contents?: true

Size: 860 Bytes

Versions: 4

Compression:

Stored size: 860 Bytes

Contents

module Pageflow
  # Definition of page type located inside the Pageflow gem.
  class BuiltInPageType < PageType
    attr_reader :name

    def initialize(name)
      @name = name.to_s
    end

    def template_path
      File.join('pageflow', 'pages', 'templates', "_#{name}.html.erb")
    end

    def translation_key
      "activerecord.values.pageflow/page.template.#{name}"
    end

    # Factory methods to decouple Pageflow initializers from concrete
    # page type classes, so we might decide later to create a
    # VideoPageType subclass etc.

    def self.audio
      new('audio')
    end

    def self.background_image
      new('background_image')
    end

    def self.background_video
      new('background_video')
    end

    def self.internal_links
      new('internal_links')
    end

    def self.video
      new('video')
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pageflow-0.4.0 lib/pageflow/built_in_page_type.rb
pageflow-0.3.0 lib/pageflow/built_in_page_type.rb
pageflow-0.2.1 lib/pageflow/built_in_page_type.rb
pageflow-0.2.0 lib/pageflow/built_in_page_type.rb