Sha256: 36aac976018e5839a8a386f736737d955823c953b39ba03c56e292492a9e7bbd

Contents?: true

Size: 984 Bytes

Versions: 3

Compression:

Stored size: 984 Bytes

Contents

module ContentsCore
  module Blocks
    extend ActiveSupport::Concern

    included do
      # embeds_many :cc_blocks, as: :parent, cascade_callbacks: true, order: :position.desc, class_name: 'ContentsCore::Block'
      has_many :cc_blocks, as: :parent, dependent: :destroy, foreign_key: 'parent_id', class_name: Block.to_s
      accepts_nested_attributes_for :cc_blocks, allow_destroy: true

      def create_block( type = :text, params = {} )
        ContentsCore::create_block_in_parent( self, type, params )
      end

      def current_blocks( version = 0 )
        return @current_blocks if @current_blocks
        version = 0 unless ContentsCore.editing  # no admin = only current version
        @current_blocks = cc_blocks.where( version: version.to_i ).with_nested.published
      end

      def get_block( name, version = 0 )
        current_blocks( version ).each do |block|
          return block if block.name == name
        end
        nil
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
contents_core-0.2.5 lib/contents_core/blocks.rb
contents_core-0.2.4 lib/contents_core/blocks.rb
contents_core-0.2.2 lib/contents_core/blocks.rb