aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-07-22 12:07:45 +0200
committerPiotr Sarnacki <drogus@gmail.com>2010-09-03 22:59:07 +0200
commitabeb0ff2cc99967b852c509e5d3bd186fa8a184c (patch)
tree24961bec380787acf29c8ab92a573f71989bcf2d
parent153df92f9f670055505dd91c429b010478fac9d6 (diff)
downloadrails-abeb0ff2cc99967b852c509e5d3bd186fa8a184c.tar.gz
rails-abeb0ff2cc99967b852c509e5d3bd186fa8a184c.tar.bz2
rails-abeb0ff2cc99967b852c509e5d3bd186fa8a184c.zip
Ensure that Rails.application.initialize! is called only once
-rw-r--r--railties/lib/rails/application.rb2
-rw-r--r--railties/test/application/loading_test.rb5
2 files changed, 7 insertions, 0 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index fb04351b35..300d4c6ab9 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -95,7 +95,9 @@ module Rails
end
def initialize!
+ raise "Application has been already initialized." if @initialized
run_initializers(self)
+ @initialized = true
self
end
diff --git a/railties/test/application/loading_test.rb b/railties/test/application/loading_test.rb
index 7ea712d27a..a2abf642b8 100644
--- a/railties/test/application/loading_test.rb
+++ b/railties/test/application/loading_test.rb
@@ -89,6 +89,11 @@ class LoadingTest < Test::Unit::TestCase
assert_equal [], ActiveRecord::Base.descendants
end
+ test "initialize_cant_be_called_twice" do
+ require "#{app_path}/config/environment"
+ assert_raise(RuntimeError) { ::AppTemplate::Application.initialize! }
+ end
+
protected
def setup_ar!