aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/engine
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-06-22 23:51:28 +0200
committerPiotr Sarnacki <drogus@gmail.com>2010-09-03 22:59:03 +0200
commitad6be0876271f86e76c89645a0106b85c9d77ad7 (patch)
treefcbe3b9d4e0bd5d7b12f6e293e1077b4893a9320 /railties/lib/rails/engine
parentf7af75976a9117aa1cb294114af4f99a1d28f1cd (diff)
downloadrails-ad6be0876271f86e76c89645a0106b85c9d77ad7.tar.gz
rails-ad6be0876271f86e76c89645a0106b85c9d77ad7.tar.bz2
rails-ad6be0876271f86e76c89645a0106b85c9d77ad7.zip
Made Engine valid rack app with its own middleware stack
Diffstat (limited to 'railties/lib/rails/engine')
-rw-r--r--railties/lib/rails/engine/configurable.rb13
-rw-r--r--railties/lib/rails/engine/configuration.rb2
2 files changed, 14 insertions, 1 deletions
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