module Groupify::ActiveRecord::Group::ClassMethods::MemberAssociationExtensions

Public Instance Methods

as(membership_type) click to toggle source
# File lib/groupify/adapter/active_record/group.rb, line 105
def as(membership_type)
  where(group_memberships: {membership_type: membership_type})
end
delete(*args) click to toggle source
Calls superclass method
# File lib/groupify/adapter/active_record/group.rb, line 109
def delete(*args)
  opts = args.extract_options!
  members = args

  if opts[:as]
    proxy_association.owner.group_memberships_as_group.
        where(member_id: members.map(&:id), member_type: proxy_association.reflection.options[:source_type]).
        as(opts[:as]).
        delete_all
  else
    super(*members)
  end
end
destroy(*args) click to toggle source
Calls superclass method
# File lib/groupify/adapter/active_record/group.rb, line 123
def destroy(*args)
  opts = args.extract_options!
  members = args

  if opts[:as]
    proxy_association.owner.group_memberships_as_group.
        where(member_id: members.map(&:id), member_type: proxy_association.reflection.options[:source_type]).
        as(opts[:as]).
        destroy_all
  else
    super(*members)
  end
end