aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http/url.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2012-03-02 06:56:40 -0800
committerJosé Valim <jose.valim@gmail.com>2012-03-02 06:56:40 -0800
commit1a046ab9bf7f0c3fa045a2b771a5a22d318f02ff (patch)
treef3694b72ccc15888a9c32910b1dc92a42a6f762e /actionpack/lib/action_dispatch/http/url.rb
parentaeeebe1fdca56d20a9950f5585d10f8089388278 (diff)
parentcd5dabab95924dfaf3af8c429454f1a46d9665c1 (diff)
downloadrails-1a046ab9bf7f0c3fa045a2b771a5a22d318f02ff.tar.gz
rails-1a046ab9bf7f0c3fa045a2b771a5a22d318f02ff.tar.bz2
rails-1a046ab9bf7f0c3fa045a2b771a5a22d318f02ff.zip
Merge pull request #5242 from rails/opt_routes
Optimize routes generation in simple cases. If you pass to the route helper the same amount of arguments as the required segments, route generation will be optimized as a string interpolation. After this commit, `post_path(post)` is about 6.5 times faster, `post_url(post)` is about 5 times.
Diffstat (limited to 'actionpack/lib/action_dispatch/http/url.rb')
-rw-r--r--actionpack/lib/action_dispatch/http/url.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/http/url.rb b/actionpack/lib/action_dispatch/http/url.rb
index 80ffbe575b..f9dae5dad7 100644
--- a/actionpack/lib/action_dispatch/http/url.rb
+++ b/actionpack/lib/action_dispatch/http/url.rb
@@ -40,7 +40,9 @@ module ActionDispatch
rewritten_url << ":#{options.delete(:port)}" if options[:port]
end
- path = options.delete(:path) || ''
+ path = ""
+ path << options.delete(:script_name).to_s.chomp("/")
+ path << options.delete(:path).to_s
params = options[:params] || {}
params.reject! {|k,v| v.to_param.nil? }