module Groupify::ActiveRecord::Group

Usage:

 class Group < ActiveRecord::Base
     groupify :group, members: [:users]
     ...
 end

group.add(member)

Public Instance Methods

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

  __send__(:clear_association_cache)

  members.each do |member|
    member.groups << self unless member.groups.include?(self)
    if membership_type
      member.group_memberships_as_member.where(group_id: id, group_type: self.class.model_name.to_s, membership_type: membership_type).first_or_create!
    end
    member.__send__(:clear_association_cache)
  end
end
member_classes() click to toggle source
# File lib/groupify/adapter/active_record/group.rb, line 25
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/active_record/group.rb, line 47
def merge!(source)
  self.class.merge!(source, self)
end