From aabbf07d003d78a685c0cdcb8e8f9e7fbb02361c Mon Sep 17 00:00:00 2001 From: schneems Date: Fri, 9 May 2014 11:29:29 -0500 Subject: [ci skip] doc Http::Headers methods --- actionpack/lib/action_dispatch/http/headers.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) 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 + # headers_or_env 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 headers_or_env to original instance + # entries with duplicate keys are overwritten with the values from + # headers_or_env. 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 -- cgit v1.2.3