class PrxAuth::ScopeList
Constants
- NAMESPACE_SEPARATOR
- NO_NAMESPACE
- SCOPE_SEPARATOR
Public Class Methods
new(list)
click to toggle source
# File lib/prx_auth/scope_list.rb, line 7 def initialize(list) @string = list end
Public Instance Methods
contains?(namespace, scope=nil)
click to toggle source
# File lib/prx_auth/scope_list.rb, line 11 def contains?(namespace, scope=nil) scope, namespace = namespace, NO_NAMESPACE if scope.nil? if namespace == NO_NAMESPACE map[namespace].include?(symbolize(scope)) else symbolized_scope = symbolize(scope) map[symbolize(namespace)].include?(symbolized_scope) || map[NO_NAMESPACE].include?(symbolized_scope) end end
freeze()
click to toggle source
# File lib/prx_auth/scope_list.rb, line 22 def freeze @string.freeze self end
Private Instance Methods
empty_map()
click to toggle source
# File lib/prx_auth/scope_list.rb, line 44 def empty_map @empty_map ||= Hash.new do |hash, key| hash[key] = [] end end
map()
click to toggle source
# File lib/prx_auth/scope_list.rb, line 29 def map @parsed_map ||= empty_map.tap do |map| @string.split(SCOPE_SEPARATOR).each do |value| next if value.length < 1 parts = value.split(NAMESPACE_SEPARATOR, 2) if parts.length == 2 map[symbolize(parts[0])] << symbolize(parts[1]) else map[NO_NAMESPACE] << symbolize(parts[0]) end end end end
symbolize(value)
click to toggle source
# File lib/prx_auth/scope_list.rb, line 50 def symbolize(value) case value when Symbol then value when String then value.downcase.gsub('-', '_').intern else symbolize value.to_s end end