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
- #add(*args) ⇒ Object
-
#member_classes ⇒ Object
def members self.class.default_member_class.any_in(:group_ids => [self.id]) end.
-
#merge!(source) ⇒ Object
Merge a source group into this group.
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. 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 ⇒ Object
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 |