class ActionDispatch::Http::Headers
def [](key)
def [](key) @env[env_name(key)] end
def []=(key, value)
def []=(key, value) @env[env_name(key)] = value end
def each(&block)
def each(&block) @env.each(&block) end
def env_name(key)
def env_name(key) key = key.to_s if key =~ HTTP_HEADER key = key.upcase.tr('-', '_') key = "HTTP_" + key unless CGI_VARIABLES.include?(key) end key end
def fetch(key, *args, &block)
def fetch(key, *args, &block) @env.fetch env_name(key), *args, &block end
def initialize(env = {})
def initialize(env = {}) @env = env end
def key?(key); @env.key? key; end
def key?(key); @env.key? key; end
def merge(headers_or_env)
def merge(headers_or_env) headers = Http::Headers.new(env.dup) headers.merge!(headers_or_env) headers end
def merge!(headers_or_env)
def merge!(headers_or_env) headers_or_env.each do |key, value| self[env_name(key)] = value end end