class Sequent::Core::Middleware::Chain
Attributes
Public Class Methods
Public Instance Methods
Source
# File lib/sequent/core/middleware/chain.rb, line 13 def add(middleware) @entries.push(middleware) end
Source
# File lib/sequent/core/middleware/chain.rb, line 21 def invoke(*args, &invoker) chain = @entries.dup traverse_chain = -> do if chain.empty? invoker.call else chain.shift.call(*args, &traverse_chain) end end traverse_chain.call end