class Sequent::Core::Middleware::Chain
Attributes
entries[R]
Public Class Methods
new()
click to toggle source
# File lib/sequent/core/middleware/chain.rb, line 9 def initialize clear end
Public Instance Methods
add(middleware)
click to toggle source
# File lib/sequent/core/middleware/chain.rb, line 13 def add(middleware) @entries.push(middleware) end
clear()
click to toggle source
# File lib/sequent/core/middleware/chain.rb, line 17 def clear @entries = [] end
invoke(*args, &invoker)
click to toggle 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