module Slices::HasSlices::ClassMethods

Public Instance Methods

has_slices(embed_name) click to toggle source
# File lib/slices/has_slices.rb, line 10
      def has_slices(embed_name)
        embeds_many embed_name, class_name: 'Slice', validate: false
        accepts_nested_attributes_for embed_name, allow_destroy: true

        scope :"excluding_#{embed_name}", ->{ without(embed_name) }

        class_attribute :slice_embeds if self == Page
        if slice_embeds.nil?
          self.slice_embeds = [embed_name]
        else
          self.slice_embeds = slice_embeds + [embed_name]
        end

        class_eval <<-RUBY, __FILE__, __LINE__ + 1
          def ordered_#{embed_name}             # def orderd_slices
            #{embed_name}.ascending(:position)  #   slices.ascending(:position)
          end                                   # end
        RUBY
      end