Class: OpenapiFirst::Responder

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_first/responder.rb

Direct Known Subclasses

OperationResolver

Instance Method Summary collapse

Constructor Details

#initialize(namespace: nil, resolver: nil) ⇒ Responder

Returns a new instance of Responder.



10
11
12
13
# File 'lib/openapi_first/responder.rb', line 10

def initialize(namespace: nil, resolver: nil)
  @resolver = resolver || DefaultOperationResolver.new(namespace)
  @namespace = namespace
end

Instance Method Details

#call(env) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/openapi_first/responder.rb', line 15

def call(env)
  operation = env[OpenapiFirst::OPERATION]
  res = Rack::Response.new
  handler = find_handler(operation)
  result = handler.call(env[INBOX], res)
  res.write serialize(result) if result && res.body.empty?
  res[Rack::CONTENT_TYPE] ||= operation.content_type_for(res.status)
  res.finish
end