Module: RoleModel::Implementation

Included in:
RoleModel
Defined in:
lib/role_model/implementation.rb

Instance Method Summary collapse

Instance Method Details

#has_role?(role) ⇒ Boolean Also known as: is?

check if a given role has been assigned

Returns:

  • (Boolean)


16
17
18
# File 'lib/role_model/implementation.rb', line 16

def has_role?(role)
  roles.include?(role.to_sym)
end

#rolesObject 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