Sha256: 102a83b9f16e6b6336657db1db2c3657302a6123b7b5e785b5a9f3bc4bf3f4a3
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
class Rack::App::Endpoint::Executor def initialize(endpoint_properties) @endpoint_properties = endpoint_properties end def call(env) return catch(:rack_response){ execute(env) }.finish end protected def execute(env) request_handler = env[Rack::App::Constants::ENV::REQUEST_HANDLER] set_response_body(request_handler, get_response_body(request_handler)) return request_handler.response end def get_response_body(request_handler) catch :response_body do evaluated_value = evaluate_value(request_handler) evaluated_value end end EXTNAME = ::Rack::App::Constants::ENV::EXTNAME CONTENT_TYPE = ::Rack::App::Constants::HTTP::Headers::CONTENT_TYPE def set_response_body(handler, response_body) extname = handler.request.env[EXTNAME] handler.response.headers.merge!(@endpoint_properties.serializer.response_headers_for(extname)) handler.response.write(@endpoint_properties.serializer.serialize(extname, response_body)) end def evaluate_value(request_handler) @endpoint_properties.error_handler.execute_with_error_handling_for(request_handler) do request_handler.__send__(@endpoint_properties.endpoint_method_name) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rack-app-5.6.0 | lib/rack/app/endpoint/executor.rb |
rack-app-5.5.1 | lib/rack/app/endpoint/executor.rb |