class Thin::Headers
Store HTTP header name-value pairs direcly to a string and allow duplicated entries on some names.
Constants
- ALLOWED_DUPLICATES
- HEADER_FORMAT
Public Class Methods
new()
click to toggle source
# File lib/thin/headers.rb, line 8 def initialize @sent = {} @out = [] end
Public Instance Methods
[]=(key, value)
click to toggle source
Add key: value
pair to the headers. Ignore if already sent and
no duplicates are allowed for this key
.
# File lib/thin/headers.rb, line 16 def []=(key, value) downcase_key = key.downcase if !@sent.has_key?(downcase_key) || ALLOWED_DUPLICATES.include?(downcase_key) @sent[downcase_key] = true value = case value when Time value.httpdate when NilClass return else value.to_s end @out << HEADER_FORMAT % [key, value] end end
has_key?(key)
click to toggle source
# File lib/thin/headers.rb, line 32 def has_key?(key) @sent[key.downcase] end
to_s()
click to toggle source
# File lib/thin/headers.rb, line 36 def to_s @out.join end