From 03be27092bf51e78d0d3f3ee7fd0213023d43e0d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 8 Jun 2010 16:20:46 -0400 Subject: Revert "Add shallow routes to the new router" for now. Needs more work. This reverts commit 67a60ee314f53abcde78f8ecd2a1f7c9ef8264e1. --- actionpack/CHANGELOG | 10 ------ actionpack/lib/action_dispatch/routing/mapper.rb | 29 ++---------------- actionpack/test/dispatch/routing_test.rb | 39 ------------------------ 3 files changed, 3 insertions(+), 75 deletions(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index c3609958bc..1796d11dcd 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,15 +1,5 @@ *Rails 3.0.0 [beta 4] (June 8th, 2010)* -* Add shallow routes back to the new router [Diego Carrion] - - resources :posts do - shallow do - resources :comments - end - end - - You can now use comment_path for /comments/1 instead of post_comment_path for /posts/1/comments/1. - * Remove middleware laziness [José Valim] * Make session stores rely on request.cookie_jar and change set_session semantics to return the cookie value instead of a boolean. [José Valim] diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index e91a72cbe5..6db8d1aacc 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -350,10 +350,6 @@ module ActionDispatch scope(:constraints => constraints) { yield } end - def shallow - scope(:shallow => true) { yield } - end - def defaults(defaults = {}) scope(:defaults => defaults) { yield } end @@ -378,21 +374,12 @@ module ActionDispatch @scope_options ||= private_methods.grep(/^merge_(.+)_scope$/) { $1.to_sym } end - def merge_shallow_scope(parent, child) - parent or child - end - def merge_path_scope(parent, child) - parent_path = (@scope[:shallow] and child.eql?(':id')) ? parent.split('/').last : parent - Mapper.normalize_path "#{parent_path}/#{child}" + Mapper.normalize_path("#{parent}/#{child}") end def merge_name_prefix_scope(parent, child) - if @scope[:shallow] - child - else - parent ? "#{parent}_#{child}" : child - end + parent ? "#{parent}_#{child}" : child end def merge_module_scope(parent, child) @@ -535,10 +522,6 @@ module ActionDispatch options["#{singular}_id".to_sym] = id_constraint if id_constraint? options end - - def shallow? - options[:shallow] - end end class SingletonResource < Resource #:nodoc: @@ -620,12 +603,8 @@ module ActionDispatch resource = Resource.new(resources.pop, options) - scope(:path => resource.path, :controller => resource.controller, :shallow => resource.shallow?) do + scope(:path => resource.path, :controller => resource.controller) do with_scope_level(:resources, resource) do - if @scope[:shallow] && @scope[:name_prefix] - @scope[:path] = "/#{@scope[:name_prefix].pluralize}/:#{@scope[:name_prefix]}_id/#{resource.path}" - end - yield if block_given? with_scope_level(:collection) do @@ -639,8 +618,6 @@ module ActionDispatch with_scope_level(:member) do scope(':id') do scope(resource.options) do - @scope[:name_prefix] = nil if @scope[:shallow] - get :show if resource.actions.include?(:show) put :update if resource.actions.include?(:update) delete :destroy if resource.actions.include?(:destroy) diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index a294535e88..5c46f9b971 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -34,33 +34,6 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest end end - resources :users do - shallow do - resources :photos do - resources :types do - member do - post :preview - end - collection do - delete :erase - end - end - end - end - end - - shallow do - resources :teams do - resources :players - end - - resources :countries do - resources :cities do - resources :places - end - end - end - match 'account/logout' => redirect("/logout"), :as => :logout_redirect match 'account/login', :to => redirect("/login") @@ -779,18 +752,6 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest end end - def test_shallow_routes - with_test_routes do - assert_equal '/photos/4', photo_path(4) - assert_equal '/types/10/edit', edit_type_path(10) - assert_equal '/types/5/preview', preview_type_path(5) - assert_equal '/photos/2/types', photo_types_path(2) - assert_equal '/cities/1/places', url_for(:controller => :places, :action => :index, :city_id => 1, :only_path => true) - assert_equal '/teams/new', url_for(:controller => :teams, :action => :new, :only_path => true) - assert_equal '/photos/11/types/erase', url_for(:controller => :types, :action => :erase, :photo_id => 11, :only_path => true) - end - end - def test_update_project_person with_test_routes do get '/projects/1/people/2/update' -- cgit v1.2.3