From c9d4529c9da7c8c8f1ba3c2ab55fb40154a25023 Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Tue, 29 Sep 2009 17:33:17 -0700 Subject: Change Rails::Application to a class that is inherited from. This is still very experimental. --- railties/lib/rails.rb | 1 - railties/lib/rails/application.rb | 16 +++++++++----- .../rails/generators/rails/app/templates/config.ru | 7 ++---- railties/lib/rails/initializer.rb | 25 ++++++++++------------ 4 files changed, 24 insertions(+), 25 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails.rb b/railties/lib/rails.rb index 8c9bc799a4..43ece14a49 100644 --- a/railties/lib/rails.rb +++ b/railties/lib/rails.rb @@ -1,2 +1 @@ -require 'rails/application' require 'rails/initializer' diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index c70365e2f8..6139e20e95 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -1,10 +1,16 @@ module Rails class Application - attr_accessor :config - def self.load(environment_file) - environment = File.read(environment_file) - Object.class_eval(environment, environment_file) + def self.config + @config ||= Configuration.new + end + + def self.config=(config) + @config = config + end + + def config + self.class.config end def routes @@ -16,7 +22,7 @@ module Rails end def call(env) - @app ||= middleware.build(@routes) + @app ||= middleware.build(routes) @app.call(env) end end diff --git a/railties/lib/rails/generators/rails/app/templates/config.ru b/railties/lib/rails/generators/rails/app/templates/config.ru index 52a8a8e798..50ee033d44 100644 --- a/railties/lib/rails/generators/rails/app/templates/config.ru +++ b/railties/lib/rails/generators/rails/app/templates/config.ru @@ -1,8 +1,5 @@ -# Rack Dispatcher - -# Bootstrap rails -require ::File.dirname(__FILE__) + '/config/boot' # Require your environment file to bootstrap Rails +require ::File.dirname(__FILE__) + '/config/environment' # Dispatch the request -run Rails::Application.load(::File.dirname(__FILE__) + '/config/environment.rb') +run Rails.application.new diff --git a/railties/lib/rails/initializer.rb b/railties/lib/rails/initializer.rb index 382838f831..ddd0bb89a3 100644 --- a/railties/lib/rails/initializer.rb +++ b/railties/lib/rails/initializer.rb @@ -30,7 +30,7 @@ module Rails end def config - @@config + @@config || Configuration.new end alias configuration config @@ -96,15 +96,6 @@ module Rails else @initializers.each {|block| run_initializer(block) } end - - # HAX - # TODO: remove hax - unless initializer - app = Rails::Application.new - app.config = @config - - Rails.application = app - end end end @@ -113,10 +104,16 @@ module Rails end def self.run(initializer = nil, config = nil) - default.config = config if config - default.config ||= Configuration.new - yield default.config if block_given? - default.run(initializer) + # TODO: Clean this all up + if initializer + default.config = config + default.run(initializer) + else + Rails.application = Class.new(Application) + yield Rails.application.config if block_given? + default.config = Rails.application.config + default.run + end end end -- cgit v1.2.3