diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-02 12:12:46 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-02 12:12:46 -0700 |
commit | 2914b92048e0cee970d019b333f6e47bf42a4270 (patch) | |
tree | 928056761bd239a608aaa15a34d44127745a463e /actionpack | |
parent | 976e7e44ee68cb32f74a8de9b81e18800e42065b (diff) | |
parent | 61ba0fe82c440d244d70afc9aad5c8ea9d6e810d (diff) | |
download | rails-2914b92048e0cee970d019b333f6e47bf42a4270.tar.gz rails-2914b92048e0cee970d019b333f6e47bf42a4270.tar.bz2 rails-2914b92048e0cee970d019b333f6e47bf42a4270.zip |
Merge pull request #6122 from amerine/add_fetch_to_actiondispatch_http_headers
Enable ActionDispatch::Http::Headers to support fetch
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/http/headers.rb | 15 | ||||
-rw-r--r-- | actionpack/test/dispatch/header_test.rb | 5 |
2 files changed, 13 insertions, 7 deletions
diff --git a/actionpack/lib/action_dispatch/http/headers.rb b/actionpack/lib/action_dispatch/http/headers.rb index 040b51e040..a3bb25f75a 100644 --- a/actionpack/lib/action_dispatch/http/headers.rb +++ b/actionpack/lib/action_dispatch/http/headers.rb @@ -14,17 +14,18 @@ module ActionDispatch end def [](header_name) - if include?(header_name) - super - else - super(env_name(header_name)) - end + super env_name(header_name) + end + + def fetch(header_name, default=nil, &block) + super env_name(header_name), default, &block end private - # Converts a HTTP header name to an environment variable name. + # Converts a HTTP header name to an environment variable name if it is + # not contained within the headers hash. def env_name(header_name) - @@env_cache[header_name] + include?(header_name) ? header_name : @@env_cache[header_name] end end end diff --git a/actionpack/test/dispatch/header_test.rb b/actionpack/test/dispatch/header_test.rb index ec6ba494dc..bc7cad8db5 100644 --- a/actionpack/test/dispatch/header_test.rb +++ b/actionpack/test/dispatch/header_test.rb @@ -13,4 +13,9 @@ class HeaderTest < ActiveSupport::TestCase assert_equal "text/plain", @headers["CONTENT_TYPE"] assert_equal "text/plain", @headers["HTTP_CONTENT_TYPE"] end + + test "fetch" do + assert_equal "text/plain", @headers.fetch("content-type", nil) + assert_equal "not found", @headers.fetch('not-found', 'not found') + end end |