class ActionDispatch::Http::Headers

Constants

CGI_VARIABLES
HTTP_HEADER

Attributes

env[R]

Public Class Methods

new(env = {}) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 17
def initialize(env = {})
  @env = env
end

Public Instance Methods

[](key) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 21
def [](key)
  @env[env_name(key)]
end
[]=(key, value) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 25
def []=(key, value)
  @env[env_name(key)] = value
end
each(&block) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 38
def each(&block)
  @env.each(&block)
end
fetch(key, *args, &block) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 34
def fetch(key, *args, &block)
  @env.fetch env_name(key), *args, &block
end
include?(key)
Alias for: key?
key?(key) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 29
def key?(key)
  @env.key? env_name(key)
end
Also aliased as: include?
merge(headers_or_env) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 42
def merge(headers_or_env)
  headers = Http::Headers.new(env.dup)
  headers.merge!(headers_or_env)
  headers
end
merge!(headers_or_env) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 48
def merge!(headers_or_env)
  headers_or_env.each do |key, value|
    self[env_name(key)] = value
  end
end

Private Instance Methods

env_name(key) click to toggle source
# File lib/action_dispatch/http/headers.rb, line 55
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