aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-21 16:21:33 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-21 16:21:33 -0700
commit6bd9ade0629811e4e8e0347b8f1bc2c84f811ce2 (patch)
treed17018f8f8db7bfdd7837a3458c518db3c177b35 /actionpack/lib
parentdd1f23df7b59a6d0c4cba9c22292032414a7adfe (diff)
downloadrails-6bd9ade0629811e4e8e0347b8f1bc2c84f811ce2.tar.gz
rails-6bd9ade0629811e4e8e0347b8f1bc2c84f811ce2.tar.bz2
rails-6bd9ade0629811e4e8e0347b8f1bc2c84f811ce2.zip
fewer object allocations and method calls during route match
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/journey/router.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/actionpack/lib/action_dispatch/journey/router.rb b/actionpack/lib/action_dispatch/journey/router.rb
index 7c614004d5..01ce55f6f6 100644
--- a/actionpack/lib/action_dispatch/journey/router.rb
+++ b/actionpack/lib/action_dispatch/journey/router.rb
@@ -136,11 +136,11 @@ module ActionDispatch
routes.map! { |r|
match_data = r.path.match(req.path_info)
- match_names = match_data.names.map { |n| n.to_sym }
- match_values = match_data.captures.map { |v| v && Utils.unescape_uri(v) }
- info = Hash[match_names.zip(match_values).find_all { |_, y| y }]
-
- [match_data, r.defaults.merge(info), r]
+ path_parameters = {}
+ match_data.names.zip(match_data.captures) { |name,val|
+ path_parameters[name.to_sym] = Utils.unescape_uri(val) if val
+ }
+ [match_data, r.defaults.merge(path_parameters), r]
}
end