Class: Namira::Stack
- Inherits:
-
Object
- Object
- Namira::Stack
- Defined in:
- lib/namira/stack.rb
Overview
The middleware stack used to send a request
Class Method Summary collapse
-
.default ⇒ Object
The default middleware stack.
Instance Method Summary collapse
-
#call(env) ⇒ Object
Called by the middleware runner.
-
#initialize(&block) ⇒ Stack
constructor
A new instance of Stack.
-
#use(klass, *args, &block) ⇒ Object
Add a class to the middleware stack.
Constructor Details
#initialize(&block) ⇒ Stack
Returns a new instance of Stack.
22 23 24 25 |
# File 'lib/namira/stack.rb', line 22 def initialize(&block) @middleware = [] instance_eval(&block) end |
Class Method Details
.default ⇒ Object
The default middleware stack
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/namira/stack.rb', line 8 def default Stack.new do use Middleware::Config use Middleware::Header use Middleware::Timing use Middleware::Redirector use Middleware::Logger use Middleware::Timeout use Middleware::Network use Middleware::Responder end end |
Instance Method Details
#call(env) ⇒ Object
Called by the middleware runner.
31 32 33 34 |
# File 'lib/namira/stack.rb', line 31 def call(env) raise ArgumentError, 'Invalid environment' unless env.is_a?(Namira::Env) to_app.call(env) end |
#use(klass, *args, &block) ⇒ Object
Add a class to the middleware stack
42 43 44 45 46 |
# File 'lib/namira/stack.rb', line 42 def use(klass, *args, &block) @middleware << lambda do |app| klass.new(app, *args, &block) end end |