Sha256: 836fe33fe12de1c2621f3f2f3bb0a6b9e7bd837802a47f8d01f97909c7083e06

Contents?: true

Size: 945 Bytes

Versions: 8

Compression:

Stored size: 945 Bytes

Contents

module Abstractor
  module Methods
    module Models
      module AbstractorSubjectGroup
        def self.included(base)
          base.send :include, SoftDelete

          # Associations
          base.send :has_many, :abstractor_subject_group_members
          base.send :has_many, :abstractor_subjects, :through => :abstractor_subject_group_members
          base.send :has_many, :abstractor_abstraction_groups
          base.send :has_many, :abstractor_abstractions, :through => :abstractor_abstraction_groups

          # base.send :attr_accessible, :deleted_at, :name
          # Validations
          base.send :validates, :cardinality, numericality: { only_integer: true, greater_than: 0 }, unless: Proc.new { |a| a.cardinality.blank? }
          base.send(:include, InstanceMethods)
        end

        module InstanceMethods
          def has_subtype?(s)
            subtype == s
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
abstractor-4.4.7 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.6 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.5 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.4 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.3 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.2 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.1 lib/abstractor/methods/models/abstractor_subject_group.rb
abstractor-4.4.0 lib/abstractor/methods/models/abstractor_subject_group.rb