From 32e0bebbb95d6f0b62a89c874857e36b2f22c67d Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Wed, 1 Mar 2006 16:22:26 +0000 Subject: Use require instead of load with the integration stuff. Add helper method for creating new sessions. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3721 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/console_app.rb | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'railties') diff --git a/railties/lib/console_app.rb b/railties/lib/console_app.rb index f943d5ab49..6e30b0ef30 100644 --- a/railties/lib/console_app.rb +++ b/railties/lib/console_app.rb @@ -3,11 +3,23 @@ require 'action_controller/integration_test' # work around the at_exit hook in test/unit, which kills IRB Test::Unit.run = true +# have to use :require dependencies mechanism with the integration test stuff, +# or things start acting really wierd from request to request. +Dependencies.mechanism = :require + +# reference the global "app" instance, created on demand. To recreate the +# instance, pass a non-false value as the parameter. def app(create=false) @app_integration_instance = nil if create - unless @app_integration_instance - @app_integration_instance = ActionController::Integration::Session.new - @app_integration_instance.host! "www.example.test" + @app_integration_instance ||= new_session do |sess| + sess.host! "www.example.test" end - @app_integration_instance +end + +# create a new session. If a block is given, the new session will be yielded +# to the block before being returned. +def new_session + session = ActionController::Integration::Session.new + yield session if block_given? + session end \ No newline at end of file -- cgit v1.2.3