module Groupify::Mongoid::GroupMember
Usage:
class User include Mongoid::Document acts_as_group_member ... end user.groups << group
Public Instance Methods
as(membership_type)
click to toggle source
# File lib/groupify/adapter/mongoid/group_member.rb, line 20 def as(membership_type) return self unless membership_type group_ids = base.group_memberships.as(membership_type).first.group_ids if group_ids.present? self.and(:id.in => group_ids) else self.and(:id => nil) end end
delete(*args)
click to toggle source
Calls superclass method
# File lib/groupify/adapter/mongoid/group_member.rb, line 35 def delete(*args) opts = args.extract_options! groups = args.flatten if opts[:as] base.group_memberships.as(opts[:as]).each do |membership| membership.groups.delete(*groups) end else super(*groups) end end
destroy(*args)
click to toggle source
# File lib/groupify/adapter/mongoid/group_member.rb, line 31 def destroy(*args) delete(*args) end
in_all_groups?(*args)
click to toggle source
# File lib/groupify/adapter/mongoid/group_member.rb, line 87 def in_all_groups?(*args) opts = args.extract_options! groups = args groups.flatten.to_set.subset? self.groups.as(opts[:as]).to_set end
in_any_group?(*args)
click to toggle source
# File lib/groupify/adapter/mongoid/group_member.rb, line 77 def in_any_group?(*args) opts = args.extract_options! groups = args groups.flatten.each do |group| return true if in_group?(group, opts) end return false end
in_group?(group, opts={})
click to toggle source
# File lib/groupify/adapter/mongoid/group_member.rb, line 73 def in_group?(group, opts={}) groups.as(opts[:as]).include?(group) end
in_only_groups?(*args)
click to toggle source
# File lib/groupify/adapter/mongoid/group_member.rb, line 94 def in_only_groups?(*args) opts = args.extract_options! groups = args.flatten groups.to_set == self.groups.as(opts[:as]).to_set end