Module: Groupify::Mongoid::Group::ClassMethods::MemberAssociationExtensions

Defined in:
lib/groupify/adapter/mongoid/group.rb

Instance Method Summary collapse

Instance Method Details

#as(membership_type) ⇒ Object



109
110
111
112
# File 'lib/groupify/adapter/mongoid/group.rb', line 109

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) ⇒ Object



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/groupify/adapter/mongoid/group.rb', line 118

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) ⇒ Object



114
115
116
# File 'lib/groupify/adapter/mongoid/group.rb', line 114

def destroy(*args)
  delete(*args)
end