From 3d8b5a866631c916f871349b182a5ba9449cf0aa Mon Sep 17 00:00:00 2001 From: Fernando Blat Date: Sun, 21 Feb 2010 17:08:32 +0100 Subject: [PATCH] Fix for reload! in console not actually reloading anything much --- railties/lib/rails/console/app.rb | 7 +++++++ railties/test/application/console_test.rb | 10 ++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/railties/lib/rails/console/app.rb b/railties/lib/rails/console/app.rb index 7e8fd02..e6e2bf9 100644 --- a/railties/lib/rails/console/app.rb +++ b/railties/lib/rails/console/app.rb @@ -26,7 +26,14 @@ end # reloads the environment def reload!(print=true) puts "Reloading..." if print + + ActionDispatch::Callbacks.to_prepare do + ActiveSupport::Dependencies.clear + ActiveRecord::Base.reset_subclasses + ActiveRecord::Base.clear_reloadable_connections! + end ActionDispatch::Callbacks.new(lambda {}, false) + true end diff --git a/railties/test/application/console_test.rb b/railties/test/application/console_test.rb index 22ab60f..66193fb 100644 --- a/railties/test/application/console_test.rb +++ b/railties/test/application/console_test.rb @@ -43,6 +43,16 @@ class ConsoleTest < Test::Unit::TestCase assert_equal 3, c end + def test_reload_should_reset_active_record_and_active_support + # Expectations will be called twice: once from ConsoleTest's setup block + # and once again from this very test + ActiveSupport::Dependencies.expects(:clear).twice + ActiveRecord::Base.expects(:reset_subclasses).twice + ActiveRecord::Base.expects(:clear_reloadable_connections!).twice + + reload!(false) # Display 'Reloading...' output is false + end + def test_access_to_helpers assert_not_nil helper assert_instance_of ActionView::Base, helper -- 1.6.6.1