about summary refs log tree commit homepage
path: root/lib/unicorn/header_out.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-02-06 14:52:10 -0800
committerEric Wong <normalperson@yhbt.net>2009-02-09 19:50:54 -0800
commit25bbb88bcc16c1c0a10efc99472b05e9f6b45861 (patch)
tree4921a360284b9ccdda99fd9e0593160b0432649b /lib/unicorn/header_out.rb
parent33cf16e950d32db97ef03fa304eb2b73e9b3cc87 (diff)
downloadunicorn-25bbb88bcc16c1c0a10efc99472b05e9f6b45861.tar.gz
Just stuff what little logic we had for it into HttpResponse
since Rack takes care of the rest for us.

Put the HTTP_STATUS_HEADERS hash in HttpResponse since we're the
only user of it.   Also, change HttpResponse.send to
HttpResponse.write to avoid overriding the default method.
Diffstat (limited to 'lib/unicorn/header_out.rb')
-rw-r--r--lib/unicorn/header_out.rb47
1 files changed, 0 insertions, 47 deletions
diff --git a/lib/unicorn/header_out.rb b/lib/unicorn/header_out.rb
deleted file mode 100644
index 95f2633..0000000
--- a/lib/unicorn/header_out.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-module Unicorn
-  # This class implements a simple way of constructing the HTTP headers dynamically
-  # via a Hash syntax.  Think of it as a write-only Hash.  Refer to HttpResponse for
-  # information on how this is used.
-  #
-  # One consequence of this write-only nature is that you can write multiple headers
-  # by just doing them twice (which is sometimes needed in HTTP), but that the normal
-  # semantics for Hash (where doing an insert replaces) is not there.
-  class HeaderOut
-    ALLOWED_DUPLICATES = {
-      'Set-Cookie' => true,
-      'Set-Cookie2' => true,
-      'Warning' => true,
-      'WWW-Authenticate' => true,
-    }.freeze
-
-    def initialize
-      @sent = { Const::CONNECTION => true }
-      @out = []
-    end
-
-    def reset!
-      @sent.clear
-      @out.clear
-      @sent[Const::CONNECTION] = true
-    end
-
-    def merge!(hash)
-      hash.each do |key, value|
-        self[key] = value
-      end
-    end
-
-    # Simply writes "#{key}: #{value}" to an output buffer.
-    def[]=(key,value)
-      if not @sent.has_key?(key) or ALLOWED_DUPLICATES.has_key?(key)
-        @sent[key] = true
-        @out << "#{key}: #{value}\r\n"
-      end
-    end
-
-    def to_s
-      @out.join
-    end
-
-  end
-end