Permalink
Browse files

Dropped the idea of automatically routing :format for the vanilla rou…

…tes -- that will be a treat for map.resources. Deprecated the name route root as it'll be used as a shortcut for map.connect '' in Rails 2.0 (Rails 1.2). Added map.root as an alias for map.connect '' (Rails 2.0)

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5671 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent abe8fa7 commit 2794f4164fcdba2cfc704851918c6c869215c045 @dhh dhh committed Dec 4, 2006
View
@@ -1,5 +1,7 @@
*SVN*
+* Added map.root as an alias for map.connect '' [DHH]
+
* Added Request#format to return the format used for the request as a mime type. If no format is specified, the first Request#accepts type is used. This means you can stop using respond_to for anything else than responses [DHH]. Examples:
GET /posts/5.xml | request.format => Mime::XML
@@ -975,6 +975,11 @@ def connect(path, options = {})
@set.add_route(path, options)
end
+ # Creates a named route called "root" for matching the root level request.
+ def root(options = {})
+ named_route("root", '', options)
+ end
+
def named_route(name, path, options = {})
@set.add_named_route(name, path, options)
end
@@ -376,22 +376,22 @@ def test_url_with_no_action_specified
def test_named_url_with_no_action_specified
rs.draw do |map|
- map.root '', :controller => 'content'
+ map.home '', :controller => 'content'
map.connect ':controller/:action/:id'
end
assert_equal '/', rs.generate(:controller => 'content', :action => 'index')
assert_equal '/', rs.generate(:controller => 'content')
x = setup_for_named_route.new
- assert_equal({:controller => 'content', :action => 'index', :use_route => :root, :only_path => false},
- x.send(:root_url))
+ assert_equal({:controller => 'content', :action => 'index', :use_route => :home, :only_path => false},
+ x.send(:home_url))
end
def test_url_generated_when_forgetting_action
[{:controller => 'content', :action => 'index'}, {:controller => 'content'}].each do |hash|
rs.draw do |map|
- map.root '', hash
+ map.home '', hash
map.connect ':controller/:action/:id'
end
assert_equal '/', rs.generate({:action => nil}, {:controller => 'content', :action => 'hello'})
@@ -1592,6 +1592,20 @@ def test_generate_with_default_action
assert_equal "/people/list", url
end
+ def test_root_map
+ Object.const_set(:PeopleController, Class.new)
+
+ set.draw { |map| map.root :controller => "people" }
+
+ request.path = ""
+ request.method = :get
+ assert_nothing_raised { set.recognize(request) }
+ assert_equal("people", request.path_parameters[:controller])
+ assert_equal("index", request.path_parameters[:action])
+ ensure
+ Object.send(:remove_const, :PeopleController)
+ end
+
def test_generate_finds_best_fit
set.draw do |map|
map.connect "/people", :controller => "people", :action => "index"
View
@@ -8,16 +8,20 @@
# Sample of named route:
# map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
# This route can be invoked with purchase_url(:id => product.id)
+
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
+ # map.resources :products
+
+ # Sample resource route with options:
+ # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
- # You can have the root of your site routed by hooking up ''
+ # You can have the root of your site routed with map.root
# -- just remember to delete public/index.html.
- # map.connect '', :controller => "welcome"
+ # map.root :controller => "welcome"
- # Allow downloading Web Service WSDL as a file with an extension
- # instead of a file named 'wsdl'
+ # Allow downloading Web Service WSDL as a file with an extension instead of a file named 'wsdl'
map.connect ':controller/service.wsdl', :action => 'wsdl'
# Install the default route as the lowest priority.
- map.connect ':controller/:action/:id.:format'
map.connect ':controller/:action/:id'
end

0 comments on commit 2794f41

Please sign in to comment.