class Sniffer::Middleware::Chain
Stores all the middleware configs
Public Instance Methods
add(klass, *args)
click to toggle source
# File lib/sniffer/middleware/chain.rb, line 40 def add(klass, *args) entries.push(Entry.new(klass, *args)) end
each(&block)
click to toggle source
# File lib/sniffer/middleware/chain.rb, line 36 def each(&block) entries.each(&block) end
entries()
click to toggle source
# File lib/sniffer/middleware/chain.rb, line 32 def entries @entries ||= [] end
invoke_request(*args) { || ... }
click to toggle source
# File lib/sniffer/middleware/chain.rb, line 48 def invoke_request(*args) chain = map(&:make_new).dup traverse_chain = lambda do if chain.empty? yield else chain.shift.request(*args, &traverse_chain) end end traverse_chain.call end
invoke_response(*args) { || ... }
click to toggle source
# File lib/sniffer/middleware/chain.rb, line 60 def invoke_response(*args) chain = map(&:make_new).dup traverse_chain = lambda do if chain.empty? yield else chain.shift.response(*args, &traverse_chain) end end traverse_chain.call end
remove(klass)
click to toggle source
# File lib/sniffer/middleware/chain.rb, line 44 def remove(klass) entries.delete_if { |entry| entry.klass == klass } end