Module: Groupify::Mongoid::Group

Extended by:
ActiveSupport::Concern
Defined in:
lib/groupify/adapter/mongoid/group.rb

Overview

Usage:

 class Group
   include Mongoid::Document

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

group.add(member)

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#add(*args) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
# 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_classesObject

def members

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

end



26
27
28
# File 'lib/groupify/adapter/mongoid/group.rb', line 26

def member_classes
  self.class.member_classes
end

#merge!(source) ⇒ Object

Merge a source group into this group.



45
46
47
# File 'lib/groupify/adapter/mongoid/group.rb', line 45

def merge!(source)
  self.class.merge!(source, self)
end