class Upperkut::Middleware::Chain
Attributes
items[R]
Public Class Methods
new()
click to toggle source
# File lib/upperkut/middleware.rb, line 6 def initialize @items = [] end
Public Instance Methods
add(item)
click to toggle source
# File lib/upperkut/middleware.rb, line 10 def add(item) return @items if @items.include?(item) @items << item end
invoke(*args) { || ... }
click to toggle source
# File lib/upperkut/middleware.rb, line 20 def invoke(*args) chain = @items.map(&:new) traverse_chain = lambda do if chain.empty? yield else chain.shift.call(*args, &traverse_chain) end end traverse_chain.call end
remove(item)
click to toggle source
# File lib/upperkut/middleware.rb, line 16 def remove(item) @items.delete(item) end