Module: Groupify::ActiveRecord::GroupMember::GroupAssociationExtensions

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

Instance Method Summary collapse

Instance Method Details

#as(membership_type) ⇒ Object



32
33
34
35
# File 'lib/groupify/adapter/active_record/group_member.rb', line 32

def as(membership_type)
  return self unless membership_type
  where(group_memberships: {membership_type: membership_type})
end

#delete(*args) ⇒ Object



37
38
39
40
41
42
43
44
45
46
# File 'lib/groupify/adapter/active_record/group_member.rb', line 37

def delete(*args)
  opts = args.extract_options!
  groups = args.flatten

  if opts[:as]
    proxy_association.owner.group_memberships_as_member.where(group_id: groups.map(&:id)).as(opts[:as]).delete_all
  else
    super(*groups)
  end
end

#destroy(*args) ⇒ Object



48
49
50
51
52
53
54
55
56
57
# File 'lib/groupify/adapter/active_record/group_member.rb', line 48

def destroy(*args)
  opts = args.extract_options!
  groups = args.flatten

  if opts[:as]
    proxy_association.owner.group_memberships_as_member.where(group_id: groups.map(&:id)).as(opts[:as]).destroy_all
  else
    super(*groups)
  end
end