aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-01-22 15:22:18 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-01-22 15:22:18 -0200
commit139c232b075da940cdf1042dcaad4c3b514908c9 (patch)
tree17523822b460327093a1b463f98f30a1f82b5f64
parent2ced07de4f25783f386df496ad610e2f75f5f23c (diff)
parentd3211d76ce666c9fb0a3c69262e4efdb8eee8832 (diff)
downloadrails-139c232b075da940cdf1042dcaad4c3b514908c9.tar.gz
rails-139c232b075da940cdf1042dcaad4c3b514908c9.tar.bz2
rails-139c232b075da940cdf1042dcaad4c3b514908c9.zip
Merge pull request #18643 from kaspth/renderer-normalize_keys-speedup
Speed up ActionController::Renderer `normalize_keys` by ~28%.
-rw-r--r--actionpack/lib/action_controller/renderer.rb15
1 files changed, 6 insertions, 9 deletions
diff --git a/actionpack/lib/action_controller/renderer.rb b/actionpack/lib/action_controller/renderer.rb
index a122954968..e8b29c5b5e 100644
--- a/actionpack/lib/action_controller/renderer.rb
+++ b/actionpack/lib/action_controller/renderer.rb
@@ -1,3 +1,5 @@
+require 'active_support/core_ext/hash/keys'
+
module ActionController
# ActionController::Renderer allows to render arbitrary templates
# without requirement of being in controller actions.
@@ -71,20 +73,15 @@ module ActionController
private
def normalize_keys(env)
- env.dup.tap do |new_env|
- convert_symbols! new_env
+ http_header_format(env).tap do |new_env|
handle_method_key! new_env
handle_https_key! new_env
end
end
- def convert_symbols!(env)
- env.keys.each do |key|
- if key.is_a? Symbol
- value = env.delete key
- key = key.to_s.upcase
- env[key] = value
- end
+ def http_header_format(env)
+ env.transform_keys do |key|
+ key.is_a?(Symbol) ? key.to_s.upcase : key
end
end