Module: RoleModel::Implementation
- Included in:
- RoleModel
- Defined in:
- lib/role_model/implementation.rb
Instance Method Summary collapse
-
#has_role?(role) ⇒ Boolean
(also: #is?)
check if a given role has been assigned.
-
#roles ⇒ Object
(also: #role_symbols)
query assigned roles.
-
#roles=(*roles) ⇒ Object
assign roles.
Instance Method Details
#has_role?(role) ⇒ Boolean Also known as: is?
check if a given role has been assigned
16 17 18 |
# File 'lib/role_model/implementation.rb', line 16 def has_role?(role) roles.include?(role.to_sym) end |
#roles ⇒ Object Also known as: role_symbols
query assigned roles
10 11 12 |
# File 'lib/role_model/implementation.rb', line 10 def roles Roles.new(self, self.class.valid_roles.reject { |r| ((self.send(self.class.roles_attribute_name) || 0) & 2**self.class.valid_roles.index(r)).zero? }) end |
#roles=(*roles) ⇒ Object
assign roles
5 6 7 |
# File 'lib/role_model/implementation.rb', line 5 def roles=(*roles) self.send("#{self.class.roles_attribute_name}=", (Array[*roles].flatten.map { |r| r.to_sym } & self.class.valid_roles).map { |r| 2**self.class.valid_roles.index(r) }.inject { |sum, bitvalue| sum + bitvalue }) end |