Module: Groupify::ActiveRecord::Model::ClassMethods

Defined in:
lib/groupify/adapter/active_record/model.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_group(opts = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/groupify/adapter/active_record/model.rb', line 21

def acts_as_group(opts = {})
  include Groupify::ActiveRecord::Group

  if (member_klass = opts.delete :default_members)
    self.default_member_class = member_klass.to_s.classify.constantize
  end

  if (member_klasses = opts.delete :members)
    member_klasses.each do |member_klass|
      has_members(member_klass)
    end
  end
end

#acts_as_group_member(opts = {}) ⇒ Object



35
36
37
38
# File 'lib/groupify/adapter/active_record/model.rb', line 35

def acts_as_group_member(opts = {})
  @group_class_name = opts[:group_class_name] || Groupify.group_class_name
  include Groupify::ActiveRecord::GroupMember
end

#acts_as_group_membership(opts = {}) ⇒ Object



44
45
46
# File 'lib/groupify/adapter/active_record/model.rb', line 44

def acts_as_group_membership(opts = {})
  include Groupify::ActiveRecord::GroupMembership
end

#acts_as_named_group_member(opts = {}) ⇒ Object



40
41
42
# File 'lib/groupify/adapter/active_record/model.rb', line 40

def acts_as_named_group_member(opts = {})
  include Groupify::ActiveRecord::NamedGroupMember
end

#groupify(type, opts = {}) ⇒ Object



17
18
19
# File 'lib/groupify/adapter/active_record/model.rb', line 17

def groupify(type, opts = {})
  send("acts_as_#{type}", opts)
end