diff options
Diffstat (limited to 'actionpack/lib/action_controller/middleware.rb')
-rw-r--r-- | actionpack/lib/action_controller/middleware.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/middleware.rb b/actionpack/lib/action_controller/middleware.rb new file mode 100644 index 0000000000..fac0ed2645 --- /dev/null +++ b/actionpack/lib/action_controller/middleware.rb @@ -0,0 +1,38 @@ +module ActionController + class Middleware < Metal + class ActionMiddleware + def initialize(controller) + @controller = controller + end + + def call(env) + controller = @controller.allocate + controller.send(:initialize) + controller.app = @app + controller._call(env) + end + + def app=(app) + @app = app + end + end + + def self.new(app) + middleware = ActionMiddleware.new(self) + middleware.app = app + middleware + end + + def _call(env) + @_env = env + @_request = ActionDispatch::Request.new(env) + @_response = ActionDispatch::Response.new + @_response.request = @_request + process(:index) + end + + def index + call(env) + end + end +end
\ No newline at end of file |