aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/application.rb
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2009-10-08 15:08:08 -0700
committerCarl Lerche <carllerche@mac.com>2009-10-08 15:08:08 -0700
commited77e84c4b00bf1d2269af6a07575c30039d942d (patch)
tree44d021dc0e40382458b4829e3c76b697b9e1aaf7 /railties/lib/rails/application.rb
parent7faa52a424a7a9edea796babf6d091930df5396a (diff)
downloadrails-ed77e84c4b00bf1d2269af6a07575c30039d942d.tar.gz
rails-ed77e84c4b00bf1d2269af6a07575c30039d942d.tar.bz2
rails-ed77e84c4b00bf1d2269af6a07575c30039d942d.zip
Ported over more initializers
Diffstat (limited to 'railties/lib/rails/application.rb')
-rw-r--r--railties/lib/rails/application.rb42
1 files changed, 41 insertions, 1 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index c7b92ef9b7..5b5f6842b9 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -102,7 +102,47 @@ module Rails
# Create tmp directories
initializer :ensure_tmp_directories_exist do
%w(cache pids sessions sockets).each do |dir_to_make|
- FileUtils.mkdir_p(File.join(configuration.root_path, 'tmp', dir_to_make))
+ FileUtils.mkdir_p(File.join(config.root_path, 'tmp', dir_to_make))
+ end
+ end
+
+ # Loads the environment specified by Configuration#environment_path, which
+ # is typically one of development, test, or production.
+ initializer :load_environment do
+ silence_warnings do
+ next if @environment_loaded
+ next unless File.file?(config.environment_path)
+
+ @environment_loaded = true
+ constants = self.class.constants
+
+ eval(IO.read(configuration.environment_path), binding, configuration.environment_path)
+
+ (self.class.constants - constants).each do |const|
+ Object.const_set(const, self.class.const_get(const))
+ end
+ end
+ end
+
+ initializer :add_gem_load_paths do
+ require 'rails/gem_dependency'
+ Rails::GemDependency.add_frozen_gem_path
+ unless config.gems.empty?
+ require "rubygems"
+ config.gems.each { |gem| gem.add_load_paths }
+ end
+ end
+
+ # Preload all frameworks specified by the Configuration#frameworks.
+ # Used by Passenger to ensure everything's loaded before forking and
+ # to avoid autoload race conditions in JRuby.
+ initializer :preload_frameworks do
+ if config.preload_frameworks
+ config.frameworks.each do |framework|
+ # String#classify and #constantize aren't available yet.
+ toplevel = Object.const_get(framework.to_s.gsub(/(?:^|_)(.)/) { $1.upcase })
+ toplevel.load_all! if toplevel.respond_to?(:load_all!)
+ end
end
end
end