Simplified ClassMethods.mask_for.

This commit is contained in:
James McCarthy 2012-03-26 00:43:19 +01:00
parent 565e919863
commit c2f1f054b0

View file

@ -19,10 +19,11 @@ module RoleModel
end
def mask_for(*roles)
sanitized_roles = roles.map { |role| role.is_a?(Set) ? role.to_a : role }.flatten.map(&:to_sym)
sanitized_roles = roles.map { |role| Array(role) }.flatten.map(&:to_sym)
(valid_roles & sanitized_roles).inject(0) { |sum, role| sum + 2**valid_roles.index(role) }
end
protected
# :call-seq: