Sha256: 015aa4d70d7656798db2d7b24a2e40c7acb5b0c014a7f02a013ca3e4d3c074d8

Contents?: true

Size: 690 Bytes

Versions: 3

Compression:

Stored size: 690 Bytes

Contents

module Pages
  class Block
    include Model

    embedded_in :page

    field :position, type: Integer

    # Returns symbolized block type, inferred from class name.
    #
    def type
      self.class.name.split("::").last.underscore.to_sym
    end

    # Returns PageNode of the Page the block belongs to.
    #
    def page_node
      page.page_node
    end

    # Returns lang of the PageContent the block belongs to.
    #
    def lang
      page.lang
    end

    # Returns +true+ if block has configurable details.
    #
    def has_details?
      false
    end

    def self.has_details!
      define_method(:has_details?) { true }
    end

  end # class Block
end # module Pages

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aerogel-pages-1.4.16 db/model/pages/block.rb
aerogel-pages-1.4.14 db/model/pages/block.rb
aerogel-pages-1.4.12 db/model/pages/block.rb