diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-05-12 20:48:46 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-05-13 17:42:08 +0000 |
commit | 36d02e26fc627fe431bfedc740b80dde75665987 (patch) | |
tree | e2e43fbaab8dc23785b81d0aed0f79faac6685ce | |
parent | f3235420ebd2def1cdcb7c5bbe036f157835420d (diff) | |
download | unicorn-36d02e26fc627fe431bfedc740b80dde75665987.tar.gz |
Preventing needless duplication since Rack already has these codes for us. Also, put the status codes in HttpResponse since nothing else needs (or should need) them.
-rw-r--r-- | Rakefile | 1 | ||||
-rw-r--r-- | lib/unicorn/const.rb | 48 | ||||
-rw-r--r-- | lib/unicorn/http_response.rb | 8 |
3 files changed, 10 insertions, 47 deletions
@@ -16,6 +16,7 @@ Echoe.new("unicorn") do |p| p.ignore_pattern = /^(pkg|site|projects|doc|log)|CVS|\.log/ p.need_tar_gz = false p.need_tgz = true + p.dependencies = [ 'rack' ] p.extension_pattern = ["ext/**/extconf.rb"] diff --git a/lib/unicorn/const.rb b/lib/unicorn/const.rb index 3bd4808..263ea10 100644 --- a/lib/unicorn/const.rb +++ b/lib/unicorn/const.rb @@ -1,51 +1,7 @@ -module Unicorn +require 'rack/utils' - # Every standard HTTP code mapped to the appropriate message. These are - # used so frequently that they are placed directly in Unicorn for easy - # access rather than Unicorn::Const itself. - HTTP_STATUS_CODES = { - 100 => 'Continue', - 101 => 'Switching Protocols', - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Moved Temporarily', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Time-out', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Large', - 415 => 'Unsupported Media Type', - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Time-out', - 505 => 'HTTP Version not supported' - }.inject({}) { |hash,(code,msg)| - hash[code] = "#{code} #{msg}" - hash - } +module Unicorn # Frequently used constants when constructing requests or responses. Many times # the constant just refers to a string with the same contents. Using these constants diff --git a/lib/unicorn/http_response.rb b/lib/unicorn/http_response.rb index a9b5f2b..ce04a0d 100644 --- a/lib/unicorn/http_response.rb +++ b/lib/unicorn/http_response.rb @@ -21,6 +21,12 @@ module Unicorn class HttpResponse + # Every standard HTTP code mapped to the appropriate message. + CODES = Rack::Utils::HTTP_STATUS_CODES.inject({}) { |hash,(code,msg)| + hash[code] = "#{code} #{msg}" + hash + } + # Rack does not set/require a Date: header. We always override the # Connection: and Date: headers no matter what (if anything) our # Rack application sent us. @@ -31,7 +37,7 @@ module Unicorn # writes the rack_response to socket as an HTTP response def self.write(socket, rack_response) status, headers, body = rack_response - status = HTTP_STATUS_CODES[status] + status = CODES[status] OUT.clear # Don't bother enforcing duplicate supression, it's a Hash most of |