aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorschneems <richard.schneeman@gmail.com>2014-05-09 11:29:29 -0500
committerschneems <richard.schneeman@gmail.com>2014-05-09 11:29:29 -0500
commitaabbf07d003d78a685c0cdcb8e8f9e7fbb02361c (patch)
treebd7b06c6a86e0286a4c77358486dde95ab71a553
parenta923375e797664d2fa7d1a933572fd11431dfaf1 (diff)
downloadrails-aabbf07d003d78a685c0cdcb8e8f9e7fbb02361c.tar.gz
rails-aabbf07d003d78a685c0cdcb8e8f9e7fbb02361c.tar.bz2
rails-aabbf07d003d78a685c0cdcb8e8f9e7fbb02361c.zip
[ci skip] doc Http::Headers methods
-rw-r--r--actionpack/lib/action_dispatch/http/headers.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/http/headers.rb b/actionpack/lib/action_dispatch/http/headers.rb
index 29cd6a0c27..cd133d6b99 100644
--- a/actionpack/lib/action_dispatch/http/headers.rb
+++ b/actionpack/lib/action_dispatch/http/headers.rb
@@ -19,14 +19,16 @@ module ActionDispatch
include Enumerable
attr_reader :env
- def initialize(env = {})
+ def initialize(env = {}) # :nodoc:
@env = env
end
+ # Returns the value for the given key mapped to @env.
def [](key)
@env[env_name(key)]
end
+ # Set the given value for the key mapped to @env.
def []=(key, value)
@env[env_name(key)] = value
end
@@ -34,6 +36,12 @@ module ActionDispatch
def key?(key); @env.key? key; end
alias :include? :key?
+
+ # Returns the value for the given key mapped to @env.
+ # If the key can’t be found, there are several options:
+ # with no other arguments, it will raise an KeyError exception;
+ # If the optional code block is specified, then that will be run and its
+ # result returned.
def fetch(key, *args, &block)
@env.fetch env_name(key), *args, &block
end
@@ -42,12 +50,18 @@ module ActionDispatch
@env.each(&block)
end
+
+ # Returns a new Http::Headers instance containing the contents of
+ # <tt>headers_or_env</tt> and the original instance.
def merge(headers_or_env)
headers = Http::Headers.new(env.dup)
headers.merge!(headers_or_env)
headers
end
+ # Adds the contents of <tt>headers_or_env</tt> to original instance
+ # entries with duplicate keys are overwritten with the values from
+ # <tt>headers_or_env</tt>.
def merge!(headers_or_env)
headers_or_env.each do |key, value|
self[env_name(key)] = value
@@ -55,6 +69,8 @@ module ActionDispatch
end
private
+ # Converts a HTTP header name to an environment variable name if it is
+ # not contained within the headers hash.
def env_name(key)
key = key.to_s
if key =~ HTTP_HEADER