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



28
29
30
31
# File 'lib/groupify/adapter/active_record/group_member.rb', line 28

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

#delete(*args) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/groupify/adapter/active_record/group_member.rb', line 33

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

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

#destroy(*args) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/groupify/adapter/active_record/group_member.rb', line 44

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

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