diff options
author | Michael Koziarski <michael@koziarski.com> | 2008-01-11 06:39:56 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-01-11 06:39:56 +0000 |
commit | 104f31af1dc412160b624da1b09c5456fa862f53 (patch) | |
tree | 8cb890a5a68b0c6e677571dcf7dfa3821a933877 /actionpack/lib/action_controller/headers.rb | |
parent | e6de95889dd361359bcd885c9f38087f14f57628 (diff) | |
download | rails-104f31af1dc412160b624da1b09c5456fa862f53.tar.gz rails-104f31af1dc412160b624da1b09c5456fa862f53.tar.bz2 rails-104f31af1dc412160b624da1b09c5456fa862f53.zip |
Provide a nicer way to access headers. request.headers["Content-Type"] instead of request.headers["HTTP_CONTENT_TYPE"] [Koz]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8625 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_controller/headers.rb')
-rw-r--r-- | actionpack/lib/action_controller/headers.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/headers.rb b/actionpack/lib/action_controller/headers.rb new file mode 100644 index 0000000000..7239438c49 --- /dev/null +++ b/actionpack/lib/action_controller/headers.rb @@ -0,0 +1,31 @@ +module ActionController + module Http + class Headers < ::Hash + + def initialize(constructor = {}) + if constructor.is_a?(Hash) + super() + update(constructor) + else + super(constructor) + end + end + + def [](header_name) + if include?(header_name) + super + else + super(normalize_header(header_name)) + end + end + + + private + # Takes an HTTP header name and returns it in the + # format + def normalize_header(header_name) + "HTTP_#{header_name.upcase.gsub(/-/, '_')}" + end + end + end +end
\ No newline at end of file |