From 3d671b369102788a07e6d8865433d6175f86cd5a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 13 May 2009 17:45:37 +0000 Subject: http_response: allow string status codes Rack::Lint says they just have to work when to_i is called on the status, so that's what we'll do. --- lib/unicorn/http_response.rb | 2 +- test/unit/test_response.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/unicorn/http_response.rb b/lib/unicorn/http_response.rb index ce04a0d..15df3f6 100644 --- a/lib/unicorn/http_response.rb +++ b/lib/unicorn/http_response.rb @@ -37,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 = CODES[status] + status = CODES[status.to_i] OUT.clear # Don't bother enforcing duplicate supression, it's a Hash most of diff --git a/test/unit/test_response.rb b/test/unit/test_response.rb index 3cb0a41..644a2a7 100644 --- a/test/unit/test_response.rb +++ b/test/unit/test_response.rb @@ -18,6 +18,14 @@ class ResponseTest < Test::Unit::TestCase assert out.length > 0, "output didn't have data" end + def test_response_string_status + out = StringIO.new + HttpResponse.write(out,['200', {}, []]) + assert out.closed? + assert out.length > 0, "output didn't have data" + assert_equal 1, out.string.split(/\r\n/).grep(/^Status: 200 OK/).size + end + def test_response_OFS_set old_ofs = $, $, = "\f\v" -- cgit v1.2.3-24-ge0c7