diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-07 14:20:31 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-07 15:31:50 +0100 |
commit | f564f947d94645dca8ff67fc5c2ad161eb2bb187 (patch) | |
tree | b5ac8c835de8ded49bd5887c3dacb538acf8efad /actionpack/lib/action_controller/metal/url_for.rb | |
parent | 598456b68b48446159c37ced52c4092c29d31ac6 (diff) | |
download | rails-f564f947d94645dca8ff67fc5c2ad161eb2bb187.tar.gz rails-f564f947d94645dca8ff67fc5c2ad161eb2bb187.tar.bz2 rails-f564f947d94645dca8ff67fc5c2ad161eb2bb187.zip |
Remove duplicated url_for code and move methods shared between ActionMailer and ActionController up to AbstractController.
Diffstat (limited to 'actionpack/lib/action_controller/metal/url_for.rb')
-rw-r--r-- | actionpack/lib/action_controller/metal/url_for.rb | 38 |
1 files changed, 6 insertions, 32 deletions
diff --git a/actionpack/lib/action_controller/metal/url_for.rb b/actionpack/lib/action_controller/metal/url_for.rb index 8c3810ebcb..73feacb872 100644 --- a/actionpack/lib/action_controller/metal/url_for.rb +++ b/actionpack/lib/action_controller/metal/url_for.rb @@ -2,40 +2,14 @@ module ActionController module UrlFor extend ActiveSupport::Concern - include RackDelegation + include AbstractController::UrlFor + include ActionController::RackDelegation - # Overwrite to implement a number of default options that all url_for-based methods will use. The default options should come in - # the form of a hash, just like the one you would use for url_for directly. Example: - # - # def default_url_options(options) - # { :project => @project.active? ? @project.url_name : "unknown" } - # end - # - # As you can infer from the example, this is mostly useful for situations where you want to centralize dynamic decisions about the - # urls as they stem from the business domain. Please note that any individual url_for call can always override the defaults set - # by this method. - def default_url_options(options = nil) - end - - def rewrite_options(options) #:nodoc: - if defaults = default_url_options(options) - defaults.merge(options) - else - options - end - end + protected - def url_for(options = {}) - options ||= {} - case options - when String - options - when Hash - @url ||= UrlRewriter.new(request, params) - @url.rewrite(rewrite_options(options)) - else - polymorphic_url(options) - end + def _url_rewriter + return ActionController::UrlRewriter unless request + @_url_rewriter ||= ActionController::UrlRewriter.new(request, params) end end end |