Class: ApiProxy::ResponseBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/api_proxy/response_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env, namespace = :default) ⇒ ResponseBuilder

Returns a new instance of ResponseBuilder.



9
10
11
12
13
# File 'lib/api_proxy/response_builder.rb', line 9

def initialize(env, namespace = :default)
  @env = env
  @namespace = namespace
  @config = ApiProxy.configuration(namespace)
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



7
8
9
# File 'lib/api_proxy/response_builder.rb', line 7

def config
  @config
end

#envObject (readonly)

Returns the value of attribute env.



7
8
9
# File 'lib/api_proxy/response_builder.rb', line 7

def env
  @env
end

#namespaceObject (readonly)

Returns the value of attribute namespace.



7
8
9
# File 'lib/api_proxy/response_builder.rb', line 7

def namespace
  @namespace
end

Instance Method Details

#allow_request?Boolean

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/api_proxy/response_builder.rb', line 15

def allow_request?
  return false unless request.path.start_with?(config.request_starts_with)

  config.request_allowed.call(@env)
end

#responseObject



21
22
23
24
25
26
27
# File 'lib/api_proxy/response_builder.rb', line 21

def response
  Rack::Response.new(
    result.to_s,
    result.code,
    ApiProxy::HeadersFilter.new(result.headers).filter
  )
end