Module: RoleModel::ClassMethods
- Defined in:
- lib/role_model/class_methods.rb
Instance Method Summary collapse
-
#inherited(subclass) ⇒ Object
:nodoc:.
- #mask_for(*roles) ⇒ Object
-
#roles_attribute(name) ⇒ Object
set the bitmask attribute role assignments will be stored in.
-
#roles_attribute=(name) ⇒ Object
alternative method signature: set the bitmask attribute role assignments will be stored in.
Instance Method Details
#inherited(subclass) ⇒ Object
:nodoc:
3 4 5 6 7 8 9 |
# File 'lib/role_model/class_methods.rb', line 3 def inherited(subclass) # :nodoc: ::RoleModel::INHERITABLE_CLASS_ATTRIBUTES.each do |attribute| instance_var = "@#{attribute}" subclass.instance_variable_set(instance_var, instance_variable_get(instance_var)) end super end |
#mask_for(*roles) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/role_model/class_methods.rb', line 21 def mask_for(*roles) (Array[*roles].map {|r| r.respond_to?(:each) ? r.to_a : r }.flatten.map { |r| r.to_sym } & valid_roles).map { |r| 2**valid_roles.index(r) }.inject { |sum, bitvalue| sum + bitvalue } || 0 end |
#roles_attribute(name) ⇒ Object
set the bitmask attribute role assignments will be stored in
12 13 14 |
# File 'lib/role_model/class_methods.rb', line 12 def roles_attribute(name) self.roles_attribute = name end |
#roles_attribute=(name) ⇒ Object
alternative method signature: set the bitmask attribute role assignments will be stored in
17 18 19 |
# File 'lib/role_model/class_methods.rb', line 17 def roles_attribute=(name) self.roles_attribute_name = name.to_sym end |