Ensure environment config has higher priority than application ones.

This commit is contained in:
José Valim 2010-01-24 12:15:46 +01:00
parent 37e4deb260
commit b92608770e
3 changed files with 16 additions and 3 deletions

@ -11,7 +11,6 @@ class Application < Engine
autoload :Railties, 'rails/application/railties'
autoload :RoutesReloader, 'rails/application/routes_reloader'
# TODO Ensure production settings are read properly
class << self
private :new
alias :configure :class_eval
@ -24,7 +23,6 @@ def inherited(base)
raise "You cannot have more than one Rails::Application" if Rails.application
super
Rails.application = base.instance
base.require_environment!
end
protected

@ -3,6 +3,10 @@ class Application
module Bootstrap
include Initializable
initializer :load_environment_config do |app|
app.require_environment!
end
initializer :load_all_active_support do |app|
require "active_support/all" unless app.config.active_support.bare
end

@ -38,13 +38,24 @@ module Zoo::ReptileHouse ; end
end
test "load environment with global" do
app_file "config/environments/development.rb", "$initialize_test_set_from_env = 'success'"
app_file "config/environments/development.rb", <<-RUBY
$initialize_test_set_from_env = 'success'
AppTemplate::Application.configure do
config.cache_classes = true
config.time_zone = "Brasilia"
end
RUBY
assert_nil $initialize_test_set_from_env
add_to_config <<-RUBY
config.root = "#{app_path}"
config.time_zone = "UTC"
RUBY
require "#{app_path}/config/environment"
assert_equal "success", $initialize_test_set_from_env
assert AppTemplate::Application.config.cache_classes
assert_equal "Brasilia", AppTemplate::Application.config.time_zone
end
test "action_controller load paths set only if action controller in use" do