Skip to content

Commit

Permalink
raise an error if the old router draw method is used, along with a me…
Browse files Browse the repository at this point in the history
…ssage advising them to either upgrade their routes or add rails_legacy_mapper to their Gemfile
  • Loading branch information
joshk committed May 3, 2011
1 parent ed3e667 commit 2755294
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
5 changes: 5 additions & 0 deletions actionpack/lib/action_dispatch/routing/route_set.rb
Expand Up @@ -240,6 +240,11 @@ def append(&block)
end

def eval_block(block)
if block.arity == 1
raise "You are using the old router DSL which has been removed in Rails 3.1. " <<
"Please check how to update your routes file at: http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/ " <<
"or add the rails_legacy_mapper gem to your Gemfile"
end
mapper = Mapper.new(self)
if default_scope
mapper.with_default_scope(default_scope, &block)
Expand Down
6 changes: 6 additions & 0 deletions actionpack/test/controller/routing_test.rb
Expand Up @@ -92,6 +92,12 @@ def teardown
@rs.clear!
end

def test_draw_with_block_arity_one_raises
assert_raise(RuntimeError) do
@rs.draw { |map| map.match '/:controller(/:action(/:id))' }
end
end

def test_default_setup
@rs.draw { match '/:controller(/:action(/:id))' }
assert_equal({:controller => "content", :action => 'index'}, rs.recognize_path("/content"))
Expand Down

0 comments on commit 2755294

Please sign in to comment.