From ad6be0876271f86e76c89645a0106b85c9d77ad7 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Tue, 22 Jun 2010 23:51:28 +0200 Subject: Made Engine valid rack app with its own middleware stack --- railties/lib/rails/engine/configurable.rb | 13 ++++++++++++- railties/lib/rails/engine/configuration.rb | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'railties/lib/rails/engine') diff --git a/railties/lib/rails/engine/configurable.rb b/railties/lib/rails/engine/configurable.rb index 9a370f0abb..0af01cace2 100644 --- a/railties/lib/rails/engine/configurable.rb +++ b/railties/lib/rails/engine/configurable.rb @@ -3,10 +3,12 @@ module Rails module Configurable def self.included(base) base.extend ClassMethods + base.private_class_method :new end module ClassMethods delegate :middleware, :root, :paths, :to => :config + delegate :call, :to => :instance def config @config ||= Engine::Configuration.new(find_root_with_flag("lib")) @@ -15,6 +17,15 @@ module Rails def inherited(base) raise "You cannot inherit from a Rails::Engine child" end + + def instance + @instance ||= new + end + + def endpoint(endpoint = nil) + @endpoint = endpoint if endpoint + @endpoint + end end def config @@ -22,4 +33,4 @@ module Rails end end end -end \ No newline at end of file +end diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb index 521ed95447..9a9ec8b3ad 100644 --- a/railties/lib/rails/engine/configuration.rb +++ b/railties/lib/rails/engine/configuration.rb @@ -5,10 +5,12 @@ module Rails class Configuration < ::Rails::Railtie::Configuration attr_reader :root attr_writer :eager_load_paths, :autoload_once_paths, :autoload_paths + attr_accessor :middleware def initialize(root=nil) super() @root = root + @middleware = ActionDispatch::MiddlewareStack.new end def paths -- cgit v1.2.3