diff options
author | José Valim <jose.valim@gmail.com> | 2010-03-09 22:57:15 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-03-09 22:57:15 +0100 |
commit | ffec153029699965be98f651795f6097e235dbc8 (patch) | |
tree | d2c067ef4c3b30525a511f4026bd491904243e23 /actionpack/lib/action_controller/url_rewriter.rb | |
parent | 6cee532a44530eba71c961de55432a23e1e2e369 (diff) | |
parent | a87683fb38d6cf66f39a7bd3faa6c969c63b1f46 (diff) | |
download | rails-ffec153029699965be98f651795f6097e235dbc8.tar.gz rails-ffec153029699965be98f651795f6097e235dbc8.tar.bz2 rails-ffec153029699965be98f651795f6097e235dbc8.zip |
Merge branch 'master' of gitproxy:rails/rails
Diffstat (limited to 'actionpack/lib/action_controller/url_rewriter.rb')
-rw-r--r-- | actionpack/lib/action_controller/url_rewriter.rb | 40 |
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 |