Module: Abstractor::Methods::Models::AbstractorAbstractionGroup

Included in:
AbstractorAbstractionGroup
Defined in:
lib/abstractor/methods/models/abstractor_abstraction_group.rb

Defined Under Namespace

Modules: InstanceMethods

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/abstractor/methods/models/abstractor_abstraction_group.rb', line 5

def self.included(base)
  base.send :include, SoftDelete

  # Associations
  base.send :belongs_to, :abstractor_subject_group
  base.send :belongs_to, :about, polymorphic: true

  base.send :has_many, :abstractor_abstraction_group_members
  base.send :has_many, :abstractor_abstractions, :through => :abstractor_abstraction_group_members

  # base.send :attr_accessible, :abstractor_subject_group, :abstractor_subject_group_id, :deleted_at, :about, :about_type, :about_id

  # Hooks
  base.send :validate, :validate_subject_group_cardinality
  base.send :validate, :must_have_members

  base.send :after_commit, :update_abstractor_abstraction_group_members, :on => :update, :if => Proc.new { |record| record.previous_changes.include?('deleted_at') }

  base.send(:include, InstanceMethods)
end