module Groupify::ActiveRecord::GroupMember

Usage:

class User < ActiveRecord::Base
    groupify :group_member
    ...
end

user.groups << group

Public Instance Methods

in_all_groups?(*args) click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 80
def in_all_groups?(*args)
  opts = args.extract_options!
  groups = args.flatten

  groups.to_set.subset? self.groups.as(opts[:as]).to_set
end
in_any_group?(*args) click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 70
def in_any_group?(*args)
  opts = args.extract_options!
  groups = args

  groups.flatten.each do |group|
    return true if in_group?(group, opts)
  end
  return false
end
in_group?(group, opts={}) click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 60
def in_group?(group, opts={})
  criteria = {group_id: group.id}

  if opts[:as]
    criteria.merge!(membership_type: opts[:as])
  end

  group_memberships_as_member.exists?(criteria)
end
in_only_groups?(*args) click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 87
def in_only_groups?(*args)
  opts = args.extract_options!
  groups = args.flatten

  groups.to_set == self.groups.as(opts[:as]).to_set
end
shares_any_group?(other, opts={}) click to toggle source
# File lib/groupify/adapter/active_record/group_member.rb, line 94
def shares_any_group?(other, opts={})
  in_any_group?(other.groups, opts)
end