Module: Groupify::Mongoid::GroupMember
- Extended by:
- ActiveSupport::Concern
- Includes:
- MemberScopedAs
- Defined in:
- lib/groupify/adapter/mongoid/group_member.rb
Overview
Usage:
class User
include Mongoid::Document
acts_as_group_member
...
end
user.groups << group
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #in_all_groups?(*args) ⇒ Boolean
- #in_any_group?(*args) ⇒ Boolean
- #in_group?(group, opts = {}) ⇒ Boolean
- #in_only_groups?(*args) ⇒ Boolean
- #shares_any_group?(other, opts = {}) ⇒ Boolean
Instance Method Details
#in_all_groups?(*args) ⇒ Boolean
87 88 89 90 91 92 |
# File 'lib/groupify/adapter/mongoid/group_member.rb', line 87 def in_all_groups?(*args) opts = args. groups = args groups.flatten.to_set.subset? self.groups.as(opts[:as]).to_set end |
#in_any_group?(*args) ⇒ Boolean
77 78 79 80 81 82 83 84 85 |
# File 'lib/groupify/adapter/mongoid/group_member.rb', line 77 def in_any_group?(*args) opts = args. groups = args groups.flatten.each do |group| return true if in_group?(group, opts) end return false end |
#in_group?(group, opts = {}) ⇒ Boolean
73 74 75 |
# File 'lib/groupify/adapter/mongoid/group_member.rb', line 73 def in_group?(group, opts={}) groups.as(opts[:as]).include?(group) end |
#in_only_groups?(*args) ⇒ Boolean
94 95 96 97 98 99 |
# File 'lib/groupify/adapter/mongoid/group_member.rb', line 94 def in_only_groups?(*args) opts = args. groups = args.flatten groups.to_set == self.groups.as(opts[:as]).to_set end |
#shares_any_group?(other, opts = {}) ⇒ Boolean
101 102 103 |
# File 'lib/groupify/adapter/mongoid/group_member.rb', line 101 def shares_any_group?(other, opts={}) in_any_group?(other.groups.to_a, opts) end |