File: //usr/local/rvm/gems/ruby-2.7.4/gems/websocket-driver-0.7.5/lib/websocket/driver/headers.rb
module WebSocket
class Driver
class Headers
ALLOWED_DUPLICATES = %w[set-cookie set-cookie2 warning www-authenticate]
def initialize(received = {})
@raw = received
clear
@received = {}
@raw.each { |k,v| @received[HTTP.normalize_header(k)] = v }
end
def clear
@sent = Set.new
@lines = []
end
def [](name)
@received[HTTP.normalize_header(name)]
end
def []=(name, value)
return if value.nil?
key = HTTP.normalize_header(name)
return unless @sent.add?(key) or ALLOWED_DUPLICATES.include?(key)
@lines << "#{ name.strip }: #{ value.to_s.strip }\r\n"
end
def inspect
@raw.inspect
end
def to_h
@raw.dup
end
def to_s
@lines.join('')
end
end
end
end