module Groupify::Mongoid::Group::ClassMethods::MemberAssociationExtensions

Public Instance Methods

as(membership_type) click to toggle source
# File lib/groupify/adapter/mongoid/group.rb, line 111
def as(membership_type)
  return self unless membership_type
  where(:group_memberships.elem_match => { as: membership_type.to_s, group_ids: [base.id] })
end
delete(*args) click to toggle source
Calls superclass method
# File lib/groupify/adapter/mongoid/group.rb, line 120
def delete(*args)
  opts = args.extract_options!
  members = args

  if opts[:as]
    members.each do |member|
      member.group_memberships.as(opts[:as]).first.groups.delete(base)
    end
  else
    members.each do |member|
      member.group_memberships.in(groups: base).each do |membership|
        membership.groups.delete(base)
      end
    end

    super(*members)
  end
end
destroy(*args) click to toggle source
# File lib/groupify/adapter/mongoid/group.rb, line 116
def destroy(*args)
  delete(*args)
end