class Jackhammer::MiddlewareCollection
Constants
- Entry
Public Class Methods
new()
click to toggle source
# File lib/jackhammer/middleware_collection.rb, line 3 def initialize @entries = [] end
Public Instance Methods
call(*args, **kwargs, &block)
click to toggle source
# File lib/jackhammer/middleware_collection.rb, line 11 def call(*args, **kwargs, &block) call_chain = @entries.map(&:instantiate) + [block] traverse = proc do |*procargs, **prockwargs| call_chain.shift.call(*procargs, **prockwargs, &traverse) unless call_chain.empty? end traverse.call(*args, **kwargs) end
use(klass, *args, **kwargs, &block)
click to toggle source
# File lib/jackhammer/middleware_collection.rb, line 7 def use(klass, *args, **kwargs, &block) @entries << Entry.new(klass: klass, args: args, kwargs: kwargs, block: block) end