Sha256: 36d3dc179314516c61de2c69cf69073e0bd192ae75f5d9d8af48f8f0ba092b75

Contents?: true

Size: 851 Bytes

Versions: 6

Compression:

Stored size: 851 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.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

6 entries across 6 versions & 1 rubygems

Version Path
pageflow-0.1.0 lib/pageflow/built_in_page_type.rb
pageflow-0.0.5 lib/pageflow/built_in_page_type.rb
pageflow-0.0.4 lib/pageflow/built_in_page_type.rb
pageflow-0.0.3 lib/pageflow/built_in_page_type.rb
pageflow-0.0.2 lib/pageflow/built_in_page_type.rb
pageflow-0.0.1 lib/pageflow/built_in_page_type.rb