Class: Medi8::MiddlewareStack
- Inherits:
-
Object
- Object
- Medi8::MiddlewareStack
- Defined in:
- lib/medi8/middleware_stack.rb
Overview
MiddlewareStack is a stack of middleware that can be used to process requests.
Instance Method Summary collapse
-
#call(request, &final) ⇒ Object
Calls the middlewares in reverse order, passing the request and a final block.
-
#initialize ⇒ MiddlewareStack
constructor
Initializes a new MiddlewareStack.
-
#use(middleware) ⇒ Object
Adds a middleware to the stack.
Constructor Details
#initialize ⇒ MiddlewareStack
Initializes a new MiddlewareStack.
7 8 9 |
# File 'lib/medi8/middleware_stack.rb', line 7 def initialize @middlewares = [] end |
Instance Method Details
#call(request, &final) ⇒ Object
Calls the middlewares in reverse order, passing the request and a final block.
17 18 19 20 21 |
# File 'lib/medi8/middleware_stack.rb', line 17 def call(request, &final) @middlewares.reverse.inject(final) do |next_middleware, middleware| -> { middleware.new.call(request, &next_middleware) } end.call end |
#use(middleware) ⇒ Object
Adds a middleware to the stack.
12 13 14 |
# File 'lib/medi8/middleware_stack.rb', line 12 def use(middleware) @middlewares << middleware end |