edge badge

Provides access to the request's HTTP headers from the environment.

env     = { "CONTENT_TYPE" => "text/plain" }
headers = ActionDispatch::Http::Headers.new(env)
headers["Content-Type"] # => "text/plain"
Methods
#
E
F
I
K
M
Included Modules
Constants
CGI_VARIABLES = Set.new(%W[ AUTH_TYPE CONTENT_LENGTH CONTENT_TYPE GATEWAY_INTERFACE HTTPS PATH_INFO PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE ]).freeze
 
HTTP_HEADER = /\A[A-Za-z0-9-]+\z/
 
DEFAULT = Object.new # :nodoc:
 
Class Public methods
from_hash(hash)
# File actionpack/lib/action_dispatch/http/headers.rb, line 34
def self.from_hash(hash)
  new ActionDispatch::Request.new hash
end
Instance Public methods
[](key)

Returns the value for the given key mapped to @env.

# File actionpack/lib/action_dispatch/http/headers.rb, line 43
def [](key)
  @req.get_header env_name(key)
end
[]=(key, value)

Sets the given value for the key mapped to @env.

# File actionpack/lib/action_dispatch/http/headers.rb, line 48
def []=(key, value)
  @req.set_header env_name(key), value
end
each(&block)
# File actionpack/lib/action_dispatch/http/headers.rb, line 74
def each(&block)
  @req.each_header(&block)
end
env()
# File actionpack/lib/action_dispatch/http/headers.rb, line 95
def env; @req.env.dup; end
fetch(key, default = DEFAULT)

Returns the value for the given key mapped to @env.

If the key is not found and an optional code block is not provided, raises a KeyError exception.

If the code block is provided, then it will be run and its result returned.

# File actionpack/lib/action_dispatch/http/headers.rb, line 66
def fetch(key, default = DEFAULT)
  @req.get_header(env_name(key)) do
    return default unless default == DEFAULT
    return yield if block_given?
    raise NameError, key
  end
end
include?(key)
Alias for: key?
key?(key)
Also aliased as: include?
# File actionpack/lib/action_dispatch/http/headers.rb, line 52
def key?(key)
  @req.has_header? env_name(key)
end
merge(headers_or_env)

Returns a new Http::Headers instance containing the contents of headers_or_env and the original instance.

# File actionpack/lib/action_dispatch/http/headers.rb, line 80
def merge(headers_or_env)
  headers = @req.dup.headers
  headers.merge!(headers_or_env)
  headers
end
merge!(headers_or_env)

Adds the contents of headers_or_env to original instance entries; duplicate keys are overwritten with the values from headers_or_env.

# File actionpack/lib/action_dispatch/http/headers.rb, line 89
def merge!(headers_or_env)
  headers_or_env.each do |key, value|
    @req.set_header env_name(key), value
  end
end