aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/url_rewriter.rb
diff options
context:
space:
mode:
authorwycats <wycats@gmail.com>2010-03-08 21:08:31 -0800
committerwycats <wycats@gmail.com>2010-03-09 10:20:56 -0800
commitde79525d045b6ea2d83f325bdeeb9380510d045c (patch)
treec4b48947e98ced7b94b8332f01e4da626de93237 /actionpack/lib/action_controller/url_rewriter.rb
parentc507e16dba844c7b066d145bfd5c5d23e7a9c5ad (diff)
downloadrails-de79525d045b6ea2d83f325bdeeb9380510d045c.tar.gz
rails-de79525d045b6ea2d83f325bdeeb9380510d045c.tar.bz2
rails-de79525d045b6ea2d83f325bdeeb9380510d045c.zip
Get rid of the instance-level URL rewriter
Diffstat (limited to 'actionpack/lib/action_controller/url_rewriter.rb')
-rw-r--r--actionpack/lib/action_controller/url_rewriter.rb40
1 files changed, 3 insertions, 37 deletions
diff --git a/actionpack/lib/action_controller/url_rewriter.rb b/actionpack/lib/action_controller/url_rewriter.rb
index 981865517f..b387d49593 100644
--- a/actionpack/lib/action_controller/url_rewriter.rb
+++ b/actionpack/lib/action_controller/url_rewriter.rb
@@ -2,37 +2,16 @@ require 'active_support/core_ext/hash/except'
module ActionController
# Rewrites URLs for Base.redirect_to and Base.url_for in the controller.
- class UrlRewriter #:nodoc:
+ module UrlRewriter #:nodoc:
RESERVED_OPTIONS = [:anchor, :params, :only_path, :host, :protocol, :port, :trailing_slash, :skip_relative_url_root]
- def initialize(request, parameters)
- @request, @parameters = request, parameters
- end
-
- def rewrite(router, options = {})
- options[:host] ||= @request.host_with_port
- options[:protocol] ||= @request.protocol
-
- self.class.rewrite(router, options, @request.symbolized_path_parameters) do |options|
- process_path_options(options)
- end
- end
-
- def to_str
- "#{@request.protocol}, #{@request.host_with_port}, #{@request.path}, #{@parameters[:controller]}, #{@parameters[:action]}, #{@request.parameters.inspect}"
- end
-
- alias_method :to_s, :to_str
-
# ROUTES TODO: Class method code smell
- def self.rewrite(router, options, path_segments=nil)
+ def self.rewrite(router, options)
handle_positional_args(options)
rewritten_url = ""
- # ROUTES TODO: Fix the tests
- segments = options.delete(:_path_segments)
- path_segments = path_segments ? path_segments.merge(segments || {}) : segments
+ path_segments = options.delete(:_path_segments)
unless options[:only_path]
rewritten_url << (options[:protocol] || "http")
@@ -81,18 +60,5 @@ module ActionController
end
end
- # Given a Hash of options, generates a route
- def process_path_options(options)
- options = options.symbolize_keys
- options.update(options[:params].symbolize_keys) if options[:params]
-
- if (overwrite = options.delete(:overwrite_params))
- options.update(@parameters.symbolize_keys)
- options.update(overwrite.symbolize_keys)
- end
-
- options
- end
-
end
end