class ActionDispatch::Http::Headers
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"
Constants
- CGI_VARIABLES
- HTTP_HEADER
Attributes
env[R]
Public Instance Methods
[](key)
click to toggle source
Returns the value for the given key mapped to @env.
# File lib/action_dispatch/http/headers.rb, line 40 def [](key) @env[env_name(key)] end
[]=(key, value)
click to toggle source
Sets the given value for the key mapped to @env.
# File lib/action_dispatch/http/headers.rb, line 45 def []=(key, value) @env[env_name(key)] = value end
each(&block)
click to toggle source
# File lib/action_dispatch/http/headers.rb, line 65 def each(&block) @env.each(&block) end
fetch(key, *args, &block)
click to toggle source
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 lib/action_dispatch/http/headers.rb, line 61 def fetch(key, *args, &block) @env.fetch env_name(key), *args, &block end
key?(key)
click to toggle source
# File lib/action_dispatch/http/headers.rb, line 49 def key?(key) @env.key? env_name(key) end
Also aliased as: include?
merge(headers_or_env)
click to toggle source
Returns a new Http::Headers instance containing
the contents of headers_or_env
and the original instance.
# File lib/action_dispatch/http/headers.rb, line 71 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
Adds the contents of headers_or_env
to original instance
entries; duplicate keys are overwritten with the values from
headers_or_env
.
# File lib/action_dispatch/http/headers.rb, line 80 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
Converts a HTTP header name to an environment variable name if it is not contained within the headers hash.
# File lib/action_dispatch/http/headers.rb, line 89 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