Class: Whoosh::Middleware::Stack

Inherits:
Object
  • Object
show all
Defined in:
lib/whoosh/middleware/stack.rb

Instance Method Summary collapse

Constructor Details

#initializeStack

Returns a new instance of Stack.



6
7
8
# File 'lib/whoosh/middleware/stack.rb', line 6

def initialize
  @middlewares = []
end

Instance Method Details

#build(app) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/whoosh/middleware/stack.rb', line 14

def build(app)
  @middlewares.reverse.reduce(app) do |next_app, entry|
    if entry[:kwargs].empty?
      entry[:klass].new(next_app, *entry[:args])
    else
      entry[:klass].new(next_app, *entry[:args], **entry[:kwargs])
    end
  end
end

#use(middleware, *args, **kwargs) ⇒ Object



10
11
12
# File 'lib/whoosh/middleware/stack.rb', line 10

def use(middleware, *args, **kwargs)
  @middlewares << { klass: middleware, args: args, kwargs: kwargs }
end