module Groupify::Mongoid::Group

Usage:

 class Group
   include Mongoid::Document

   groupify :group, members: [:users]
   ...
 end

group.add(member)

Public Instance Methods

add(*args) click to toggle source
# File lib/groupify/adapter/mongoid/group.rb, line 30
def add(*args)
  opts = args.extract_options!
  membership_type = opts[:as]
  members = args.flatten
  return unless members.present?

  members.each do |member|
    member.groups << self
    membership = member.group_memberships.find_or_initialize_by(as: membership_type)
    membership.groups << self
    membership.save!
  end
end
member_classes() click to toggle source

def members

self.class.default_member_class.any_in(:group_ids => [self.id])

end

# File lib/groupify/adapter/mongoid/group.rb, line 26
def member_classes
  self.class.member_classes
end
merge!(source) click to toggle source

Merge a source group into this group.

# File lib/groupify/adapter/mongoid/group.rb, line 45
def merge!(source)
  self.class.merge!(source, self)
end