class RabbitMQHttpAuthBackend::Resolver
Attributes
params[R]
resolver[R]
Public Class Methods
new(params, resolver)
click to toggle source
# File lib/rabbitmq_http_auth_backend/resolver.rb, line 13 def initialize(params, resolver) @params = params @resolver = resolver || raise(NoResolverError) end
Public Instance Methods
call()
click to toggle source
# File lib/rabbitmq_http_auth_backend/resolver.rb, line 18 def call response = generate_response! validate_response!(response) response end
Private Instance Methods
build_response(runtime)
click to toggle source
# File lib/rabbitmq_http_auth_backend/resolver.rb, line 45 def build_response(runtime) symbol = runtime.allowed? ? :allow : :deny tags = runtime.tags [symbol, tags].compact end
generate_response!()
click to toggle source
# File lib/rabbitmq_http_auth_backend/resolver.rb, line 26 def generate_response! if resolver.is_a?(Proc) && resolver.arity.zero? runtime = Runtime.new(params) runtime.instance_eval(&resolver) build_response(runtime) elsif resolver.respond_to?(:call) Array(resolver.call(params)) else raise(NonCallableResolverError) end end
validate_response!(response)
click to toggle source
# File lib/rabbitmq_http_auth_backend/resolver.rb, line 38 def validate_response!(response) raise(InvalidResponseError) unless response.is_a?(Array) raise(InvalidResponseError) unless %I[allow deny].include?(response.first) true end