aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-12 11:38:23 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-12 14:20:56 -0700
commiteacb4264af7593a41487625d5a7a6f6986c58b47 (patch)
treef1e0e61ebedba91c06c1fd246da5f4a1a7e32006 /actionpack/lib/action_dispatch/routing
parenta214bb71b2c4352d0c11abc8fcd354e88b6dcb62 (diff)
downloadrails-eacb4264af7593a41487625d5a7a6f6986c58b47.tar.gz
rails-eacb4264af7593a41487625d5a7a6f6986c58b47.tar.bz2
rails-eacb4264af7593a41487625d5a7a6f6986c58b47.zip
Hash#except is expensive and this is a hotspot, so use a dup + delete
Diffstat (limited to 'actionpack/lib/action_dispatch/routing')
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 1ec6fa674b..440193cb42 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -657,7 +657,8 @@ module ActionDispatch
script_name = original_script_name + script_name
end
- path_options = options.except(*RESERVED_OPTIONS)
+ path_options = options.dup
+ RESERVED_OPTIONS.each { |ro| path_options.delete ro }
path_options = yield(path_options) if block_given?
path, params = generate(path_options, recall || {})