class RooOnRails::Concerns::RequireApiKey::ClientApiKeys
Constants
- CLIENT_KEY_NAME_SUFFIX_REGEX
Public Class Methods
new()
click to toggle source
# File lib/roo_on_rails/concerns/require_api_key.rb, line 77 def initialize @cache = ENV.select { |key| key =~ CLIENT_KEY_NAME_SUFFIX_REGEX } .map { |k, v| [service_name(k), parse_client_keys(v)] } .to_h .freeze end
Public Instance Methods
valid?(service_name, client_key)
click to toggle source
# File lib/roo_on_rails/concerns/require_api_key.rb, line 84 def valid?(service_name, client_key) return false if service_name.to_s.empty? || client_key.to_s.empty? client_keys = @cache[normalize(service_name)] return false unless client_keys client_keys.include?(client_key) end
Private Instance Methods
normalize(service_name)
click to toggle source
# File lib/roo_on_rails/concerns/require_api_key.rb, line 98 def normalize(service_name) service_name.upcase.gsub(/[^A-Z0-9]+/, '_') end
parse_client_keys(str)
click to toggle source
# File lib/roo_on_rails/concerns/require_api_key.rb, line 102 def parse_client_keys(str) (str || '').split(',').map(&:strip).to_set.freeze end
service_name(client_key_name)
click to toggle source
# File lib/roo_on_rails/concerns/require_api_key.rb, line 94 def service_name(client_key_name) normalize(client_key_name.sub(CLIENT_KEY_NAME_SUFFIX_REGEX, '')) end