diff options
author | Michael Koziarski <michael@koziarski.com> | 2006-02-07 00:21:45 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2006-02-07 00:21:45 +0000 |
commit | 49fad6e6d5171e632086d7f7491ef14c8a04e4cc (patch) | |
tree | b1674e0ff6eb9a00aee7894f6f12b67052657c40 | |
parent | 7139e2a0e1c24788758ccd6131ba86243de84bf6 (diff) | |
download | rails-49fad6e6d5171e632086d7f7491ef14c8a04e4cc.tar.gz rails-49fad6e6d5171e632086d7f7491ef14c8a04e4cc.tar.bz2 rails-49fad6e6d5171e632086d7f7491ef14c8a04e4cc.zip |
Add Configuration#after_initialize for specifying a block to be executed after the framework is completely initialized.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3547 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | railties/CHANGELOG | 2 | ||||
-rw-r--r-- | railties/lib/initializer.rb | 25 |
2 files changed, 25 insertions, 2 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 76de230e28..ba9d2930b3 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Added Configuration#after_initialize for registering a block which gets called after the framework is fully initialized. Useful for things like per-environment configuration of plugins. [Michael Koziarski] + * Added check for RAILS_FRAMEWORK_ROOT constant that allows the Rails framework to be found in a different place than vendor/rails. Should be set in boot.rb. [DHH] * Fixed that static requests could unlock the mutex guarding dynamic requests in the WEBrick servlet #3433 [tom@craz8.com] diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb index e1b058f3b9..9550d6d583 100644 --- a/railties/lib/initializer.rb +++ b/railties/lib/initializer.rb @@ -101,6 +101,9 @@ module Rails # Routing must be initialized after plugins to allow the former to extend the routes initialize_routing + + # the framework is now fully initialized + after_initialize end # Set the <tt>$LOAD_PATH</tt> based on the value of @@ -245,7 +248,7 @@ module Rails require('active_support/whiny_nil') if configuration.whiny_nils end - # Initialize framework-specific settings for each of the loaded frameworks + # Initializes framework-specific settings for each of the loaded frameworks # (Configuration#frameworks). The available settings map to the accessors # on each of the corresponding Base classes. def initialize_framework_settings @@ -257,6 +260,12 @@ module Rails end end end + + # Fires the user-supplied after_initialize block (Configuration#after_initialize) + def after_initialize + configuration.after_initialize_block.call if configuration.after_initialize_block + end + protected # Return a list of plugin paths within base_path. A plugin path is @@ -440,7 +449,19 @@ module Rails def environment ::RAILS_ENV end - + + # Sets a block which will be executed after rails has been fully initialized. + # Useful for per-environment configuration which depends on the framework being + # fully initialized. + def after_initialize(&after_initialize_block) + @after_initialize_block = after_initialize_block + end + + # Returns the block set in Configuration#after_initialize + def after_initialize_block + @after_initialize_block + end + private def root_path ::RAILS_ROOT |