Method: Funktor::MiddlewareChain#invoke
- Defined in:
- lib/funktor/middleware_chain.rb
#invoke(*args) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/funktor/middleware_chain.rb', line 35 def invoke(*args) return yield if @entries.empty? middlewares = entries.map(&:instantiate) traverse_chain = proc do if middlewares.empty? yield else middlewares.shift.call(*args, &traverse_chain) end end traverse_chain.call end |