Sha256: 7a3d94ae1072f3a0c25fb33c6f560200f9fa445c12a3bc7ac4174a32c294e966
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
# encoding: utf-8 module Hyperdrive class Response attr_reader :resource, :env, :http_request_method, :headers def initialize(env, resource) @resource = resource @env = env @http_request_method = env['REQUEST_METHOD'] unless request_method_supported? raise Errors::NotImplemented.new(http_request_method) end unless resource.request_method_allowed?(http_request_method) raise Errors::MethodNotAllowed.new(http_request_method) end @headers = default_headers end def response @headers.merge({ 'Content-Type' => 'text/plain' }) status = (http_request_method == 'POST') ? 201 : 200 ::Rack::Response.new(resource.request_handler(http_request_method).call(env), status, headers).finish end private def default_headers { 'Allow' => resource.allowed_methods } end def request_method_supported? Hyperdrive::Values.request_methods_string_map.key?(http_request_method) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hyperdrive-0.0.4 | lib/hyperdrive/response.rb |