From f0bbc647c2086e9536c9d2b4ea7c4c18fe2edd3e Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 15 Dec 2009 10:48:56 -0600 Subject: Procs don't call themselves Fixes dev mode reloading [#3574 state:resolved] --- railties/lib/rails/application.rb | 2 +- railties/test/application/routing_test.rb | 32 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) (limited to 'railties') diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 047d252625..bc74ac8646 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -400,7 +400,7 @@ module Rails reload_routes! end end - ActionDispatch::Callbacks.before_dispatch { |callbacks| reload_routes } + ActionDispatch::Callbacks.before_dispatch { |callbacks| reload_routes.call } end end diff --git a/railties/test/application/routing_test.rb b/railties/test/application/routing_test.rb index 752218b943..decde056fd 100644 --- a/railties/test/application/routing_test.rb +++ b/railties/test/application/routing_test.rb @@ -119,5 +119,37 @@ module ApplicationTests get '/bar' assert_equal 'bar', last_response.body end + + test "reloads routes when configuration is changed" do + controller :foo, <<-RUBY + class FooController < ActionController::Base + def bar + render :text => "bar" + end + + def baz + render :text => "baz" + end + end + RUBY + + app_file 'config/routes.rb', <<-RUBY + ActionController::Routing::Routes.draw do |map| + match 'foo', :to => 'foo#bar' + end + RUBY + + get '/foo' + assert_equal 'bar', last_response.body + + app_file 'config/routes.rb', <<-RUBY + ActionController::Routing::Routes.draw do |map| + match 'foo', :to => 'foo#baz' + end + RUBY + + get '/foo' + assert_equal 'baz', last_response.body + end end end -- cgit v1.2.3