Module: Groupify::Mongoid::NamedGroupMember

Extended by:
ActiveSupport::Concern
Includes:
MemberScopedAs
Defined in:
lib/groupify/adapter/mongoid/named_group_member.rb

Overview

Usage:

class User
  include Mongoid::Document

  acts_as_named_group_member
  ...
end

user.named_groups << :admin

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#in_all_named_groups?(*args) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
45
46
47
# File 'lib/groupify/adapter/mongoid/named_group_member.rb', line 42

def in_all_named_groups?(*args)
  opts = args.extract_options!
  named_groups = args.flatten.to_set

  named_groups.subset? self.named_groups.as(opts[:as]).to_set
end

#in_any_named_group?(*args) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
38
39
40
# File 'lib/groupify/adapter/mongoid/named_group_member.rb', line 31

def in_any_named_group?(*args)
  opts = args.extract_options!
  group_names = args.flatten

  group_names.each do |named_group|
    return true if in_named_group?(named_group)
  end

  return false
end

#in_named_group?(named_group, opts = {}) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/groupify/adapter/mongoid/named_group_member.rb', line 27

def in_named_group?(named_group, opts={})
  named_groups.as(opts[:as]).include?(named_group)
end

#in_only_named_groups?(*args) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
52
53
# File 'lib/groupify/adapter/mongoid/named_group_member.rb', line 49

def in_only_named_groups?(*args)
  opts = args.extract_options!
  named_groups = args.flatten.to_set
  named_groups == self.named_groups.as(opts[:as]).to_set
end

#shares_any_named_group?(other, opts = {}) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/groupify/adapter/mongoid/named_group_member.rb', line 55

def shares_any_named_group?(other, opts={})
  in_any_named_group?(other.named_groups, opts)
end