diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-01-22 15:22:18 -0200 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-01-22 15:22:18 -0200 |
commit | 139c232b075da940cdf1042dcaad4c3b514908c9 (patch) | |
tree | 17523822b460327093a1b463f98f30a1f82b5f64 /actionpack/lib/action_controller | |
parent | 2ced07de4f25783f386df496ad610e2f75f5f23c (diff) | |
parent | d3211d76ce666c9fb0a3c69262e4efdb8eee8832 (diff) | |
download | rails-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%.
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/renderer.rb | 15 |
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 |