aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-09-28 17:57:36 -0700
committerYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-09-28 18:00:26 -0700
commit6f6a589d4b564f5db78735ad0c7225c22ced57ac (patch)
tree402a661bd4dac4b2271d67214fcb8a5cb2530654 /railties/lib
parent8ffc2e3b8de38c485fa24820208b40920dad7ae3 (diff)
downloadrails-6f6a589d4b564f5db78735ad0c7225c22ced57ac.tar.gz
rails-6f6a589d4b564f5db78735ad0c7225c22ced57ac.tar.bz2
rails-6f6a589d4b564f5db78735ad0c7225c22ced57ac.zip
Create the application object from config/environment.rb
This is preliminary and not necessarily reflective of the full plan.
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/application.rb12
-rw-r--r--railties/lib/rails/core.rb16
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config.ru5
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/boot.rb4
-rw-r--r--railties/lib/rails/initializer.rb17
5 files changed, 31 insertions, 23 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index 14336d90c3..cadfc5010b 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -1,12 +1,20 @@
module Rails
class Application
- attr_accessor :middleware, :routes
+ attr_accessor :routes, :config
+
+ def self.load(environment_file)
+ environment = File.read(environment_file)
+ Object.class_eval(environment, environment_file)
+ end
def initialize
- @middleware = ActionDispatch::MiddlewareStack.new
@routes = ActionController::Routing::Routes
end
+ def middleware
+ config.middleware
+ end
+
def call(env)
@app ||= middleware.build(@routes)
@app.call(env)
diff --git a/railties/lib/rails/core.rb b/railties/lib/rails/core.rb
index 4c2789746c..4be90de792 100644
--- a/railties/lib/rails/core.rb
+++ b/railties/lib/rails/core.rb
@@ -5,6 +5,14 @@ module Rails
# ---
# TODO: w0t?
class << self
+ def application
+ @@application
+ end
+
+ def application=(application)
+ @@application = application
+ end
+
# The Configuration instance used to configure the Rails environment
def configuration
@@configuration
@@ -14,14 +22,6 @@ module Rails
@@configuration = configuration
end
- def application
- @@application
- end
-
- def application=(application)
- @@application = application
- end
-
def initialized?
@initialized || false
end
diff --git a/railties/lib/rails/generators/rails/app/templates/config.ru b/railties/lib/rails/generators/rails/app/templates/config.ru
index 541e200193..52a8a8e798 100644
--- a/railties/lib/rails/generators/rails/app/templates/config.ru
+++ b/railties/lib/rails/generators/rails/app/templates/config.ru
@@ -1,7 +1,8 @@
# 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 ActionController::Dispatcher.new
+run Rails::Application.load(::File.dirname(__FILE__) + '/config/environment.rb')
diff --git a/railties/lib/rails/generators/rails/app/templates/config/boot.rb b/railties/lib/rails/generators/rails/app/templates/config/boot.rb
index 1e09cf08ec..d2652af9b0 100644
--- a/railties/lib/rails/generators/rails/app/templates/config/boot.rb
+++ b/railties/lib/rails/generators/rails/app/templates/config/boot.rb
@@ -46,7 +46,7 @@ module Rails
%w(railties/lib).each do |path|
$:.unshift("#{RAILS_ROOT}/vendor/rails/#{path}")
end
- require "rails/initializer"
+ require "rails"
Rails::Initializer.run(:install_gem_spec_stubs)
Rails::GemDependency.add_frozen_gem_path
end
@@ -56,7 +56,7 @@ module Rails
def load_initializer
self.class.load_rubygems
load_rails_gem
- require 'rails/initializer'
+ require 'rails'
end
def load_rails_gem
diff --git a/railties/lib/rails/initializer.rb b/railties/lib/rails/initializer.rb
index f6aca082e8..382838f831 100644
--- a/railties/lib/rails/initializer.rb
+++ b/railties/lib/rails/initializer.rb
@@ -90,7 +90,6 @@ module Rails
def run(initializer = nil)
Rails.configuration = Base.config = @config
- Rails.application = nil
if initializer
run_initializer(initializer)
@@ -98,7 +97,14 @@ module Rails
@initializers.each {|block| run_initializer(block) }
end
- Rails.application
+ # HAX
+ # TODO: remove hax
+ unless initializer
+ app = Rails::Application.new
+ app.config = @config
+
+ Rails.application = app
+ end
end
end
@@ -605,11 +611,4 @@ Run `rake gems:install` to install the missing gems.
Rails::Generators.options.deep_merge! config.generators.options
end
end
-
- Initializer.default.add :build_application do
- if configuration.frameworks.include?(:action_controller)
- Rails.application = Rails::Application.new
- Rails.application.middleware = configuration.middleware
- end
- end
end