Module: Groupify::ActiveRecord::Group

Extended by:
ActiveSupport::Concern
Defined in:
lib/groupify/adapter/active_record/group.rb

Overview

Usage:

 class Group < ActiveRecord::Base
     acts_as_group, :members => [:users]
     ...
 end

group.add(member)

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#add(*args) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/groupify/adapter/active_record/group.rb', line 25

def add(*args)
  opts = args.extract_options!
  membership_type = opts[:as]
  members = args.flatten
  return unless members.present?

  clear_association_cache

  members.each do |member|
    member.group_memberships.where(group_id: self.id).first_or_create!
    if membership_type
      member.group_memberships.where(group_id: self.id, membership_type: membership_type).first_or_create!
    end
    member.clear_association_cache
  end
end

#member_classesObject



21
22
23
# File 'lib/groupify/adapter/active_record/group.rb', line 21

def member_classes
  self.class.member_classes
end

#merge!(source) ⇒ Object

Merge a source group into this group.



43
44
45
# File 'lib/groupify/adapter/active_record/group.rb', line 43

def merge!(source)
  self.class.merge!(source, self)
end