diff options
author | Yves Senn <yves.senn@gmail.com> | 2013-03-13 12:25:32 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2013-03-13 16:41:00 +0100 |
commit | 9af59b2468e4ad6c3c2ca89f90968fdcaa417aba (patch) | |
tree | 5102f6c010fd469fda0f7ed3161c6f4b6155c113 /actionpack/lib/action_dispatch/http/headers.rb | |
parent | e2a5de2bb200773943e605cdddb9b18bbfa77e13 (diff) | |
download | rails-9af59b2468e4ad6c3c2ca89f90968fdcaa417aba.tar.gz rails-9af59b2468e4ad6c3c2ca89f90968fdcaa417aba.tar.bz2 rails-9af59b2468e4ad6c3c2ca89f90968fdcaa417aba.zip |
allow headers and env to be passed in `IntegrationTest`.
Closes #6513.
Diffstat (limited to 'actionpack/lib/action_dispatch/http/headers.rb')
-rw-r--r-- | actionpack/lib/action_dispatch/http/headers.rb | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/http/headers.rb b/actionpack/lib/action_dispatch/http/headers.rb index ecf050a869..3f3f71b280 100644 --- a/actionpack/lib/action_dispatch/http/headers.rb +++ b/actionpack/lib/action_dispatch/http/headers.rb @@ -12,9 +12,11 @@ module ActionDispatch HEADER_REGEXP = /\A[A-Za-z-]+\z/ include Enumerable + attr_reader :env def initialize(env = {}) - @env = env + @env = {} + merge!(env) end def [](key) @@ -36,6 +38,18 @@ module ActionDispatch @env.each(&block) end + def merge(headers_or_env) + headers = Http::Headers.new(env.dup) + headers.merge!(headers_or_env) + headers + end + + def merge!(headers_or_env) + headers_or_env.each do |key, value| + self[env_name(key)] = value + end + end + private def env_name(key) if key =~ HEADER_REGEXP |