Changeset 7673
- Timestamp:
- 09/28/07 20:57:39 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/actionpack/lib/action_controller/routing_optimisation.rb
r7605 r7673 45 45 # Issues around request.host etc. 46 46 def applicable? 47 kind != :url47 true 48 48 end 49 49 end … … 61 61 # argument, but we don't want to generate /foos/id2 62 62 if number_of_arguments == 1 63 " args.size == 1 && !args.first.is_a?(Hash)"63 "defined?(request) && args.size == 1 && !args.first.is_a?(Hash)" 64 64 else 65 " args.size == #{number_of_arguments}"65 "defined?(request) && args.size == #{number_of_arguments}" 66 66 end 67 67 end … … 98 98 class PositionalArgumentsWithAdditionalParams < PositionalArguments 99 99 def guard_condition 100 " args.size == #{route.segment_keys.size + 1}"100 "defined?(request) && args.size == #{route.segment_keys.size + 1}" 101 101 end 102 102 trunk/actionpack/lib/action_controller/url_rewriter.rb
r7501 r7673 22 22 23 23 def self.included(base) #:nodoc: 24 original_optimise = ActionController::Routing.optimise_named_routes 25 ActionController::Routing.optimise_named_routes = false 26 ActionController::Routing::Routes.install_helpers base, :regenerate 24 ActionController::Routing::Routes.install_helpers base 27 25 base.mattr_accessor :default_url_options 28 26 base.default_url_options ||= default_url_options 29 ensure30 ActionController::Routing.optimise_named_routes = original_optimise31 27 end 32 28 trunk/actionpack/test/controller/routing_test.rb
r7666 r7673 176 176 end 177 177 178 def test_basic_named_route_with_relative_url_root 179 rs.add_named_route :home, '', :controller => 'content', :action => 'list' 180 x = setup_for_named_route 181 x.relative_url_root="/foo" 182 assert_equal("http://named.route.test/foo/", 183 x.send(:home_url)) 184 assert_equal "/foo/", x.send(:home_path) 185 end 186 178 187 def test_named_route_with_option 179 188 rs.add_named_route :page, 'page/:title', :controller => 'content', :action => 'show_page' … … 229 238 x = setup_for_named_route 230 239 assert_equal("http://named.route.test/", x.send(:root_url)) 231 assert_equal("/ relative/", x.send(:root_path))240 assert_equal("/", x.send(:root_path)) 232 241 end 233 242 … … 282 291 # No / to %2F in URI, only for query params. 283 292 x = setup_for_named_route 284 assert_equal("/ relative/file/hello/world", x.send(:path_path, 'hello/world'))293 assert_equal("/file/hello/world", x.send(:path_path, 'hello/world')) 285 294 end 286 295 … … 900 909 @request ||= MockRequest.new(:host => "named.route.test", :method => :get) 901 910 end 911 912 def relative_url_root=(value) 913 request.relative_url_root=value 914 end 902 915 end 903 916 904 917 class MockRequest 905 attr_accessor :path, :path_parameters, :host, :subdomains, :domain, :method 906 918 attr_accessor :path, :path_parameters, :host, :subdomains, :domain, 919 :method, :relative_url_root 920 907 921 def initialize(values={}) 908 922 values.each { |key, value| send("#{key}=", value) } … … 919 933 def host_with_port 920 934 (subdomains * '.') + '.' + domain 921 end922 923 def relative_url_root924 '/relative'925 935 end 926 936 end