module AuthAssistant::RoleStrategy::RolesMask

Public Instance Methods

role?(role) click to toggle source
# File lib/auth_assistant/role_strategies/roles_mask.rb, line 13
def role?(role)
  roles.include? role.to_s
end
roles() click to toggle source
# File lib/auth_assistant/role_strategies/roles_mask.rb, line 9
def roles
  ROLES.reject { |r| ((roles_mask || 0) & calc_index(r)).zero? }
end
roles=(*roles) click to toggle source
# File lib/auth_assistant/role_strategies/roles_mask.rb, line 5
def roles=(*roles)        
  self.roles_mask = (roles & available_roles).map { |r| calc_index(r) }.sum
end

Protected Instance Methods

calc_index(r) click to toggle source
# File lib/auth_assistant/role_strategies/roles_mask.rb, line 30
def calc_index(r)
  2**available_roles.index(r)
end

Public Class Methods

included(base) click to toggle source
# File lib/auth_assistant/role_strategies/roles_mask.rb, line 25
def self.included(base)  
  base.extend(ClassMethods)
end