Class: ActionDispatch::Http::Headers
- Inherits:
-
Object
- Object
- ActionDispatch::Http::Headers
- Includes:
- Enumerable
- Defined in:
- lib/action_dispatch/http/headers.rb
Overview
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"
Constant Summary collapse
- 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/
Instance Attribute Summary collapse
-
#env ⇒ Object
readonly
Returns the value of attribute env.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Returns the value for the given key mapped to @env.
-
#[]=(key, value) ⇒ Object
Sets the given value for the key mapped to @env.
- #each(&block) ⇒ Object
-
#fetch(key, *args, &block) ⇒ Object
Returns the value for the given key mapped to @env.
-
#initialize(env = {}) ⇒ Headers
constructor
:nodoc:.
- #key?(key) ⇒ Boolean (also: #include?)
-
#merge(headers_or_env) ⇒ Object
Returns a new Http::Headers instance containing the contents of
headers_or_env
and the original instance. -
#merge!(headers_or_env) ⇒ Object
Adds the contents of
headers_or_env
to original instance entries; duplicate keys are overwritten with the values fromheaders_or_env
.
Constructor Details
#initialize(env = {}) ⇒ Headers
:nodoc:
35 36 37 |
# File 'lib/action_dispatch/http/headers.rb', line 35 def initialize(env = {}) # :nodoc: @env = env end |
Instance Attribute Details
#env ⇒ Object (readonly)
Returns the value of attribute env.
33 34 35 |
# File 'lib/action_dispatch/http/headers.rb', line 33 def env @env end |
Instance Method Details
#[](key) ⇒ Object
Returns the value for the given key mapped to @env.
40 41 42 |
# File 'lib/action_dispatch/http/headers.rb', line 40 def [](key) @env[env_name(key)] end |
#[]=(key, value) ⇒ Object
Sets the given value for the key mapped to @env.
45 46 47 |
# File 'lib/action_dispatch/http/headers.rb', line 45 def []=(key, value) @env[env_name(key)] = value end |
#each(&block) ⇒ Object
65 66 67 |
# File 'lib/action_dispatch/http/headers.rb', line 65 def each(&block) @env.each(&block) end |
#fetch(key, *args, &block) ⇒ Object
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.
61 62 63 |
# File 'lib/action_dispatch/http/headers.rb', line 61 def fetch(key, *args, &block) @env.fetch env_name(key), *args, &block end |
#key?(key) ⇒ Boolean Also known as: include?
49 50 51 |
# File 'lib/action_dispatch/http/headers.rb', line 49 def key?(key) @env.key? env_name(key) end |
#merge(headers_or_env) ⇒ Object
Returns a new Http::Headers instance containing the contents of headers_or_env
and the original instance.
71 72 73 74 75 |
# 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) ⇒ Object
Adds the contents of headers_or_env
to original instance entries; duplicate keys are overwritten with the values from headers_or_env
.
80 81 82 83 84 |
# 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 |