class MessageDriver::Middleware::MiddlewareStack
Attributes
destination[R]
Public Class Methods
new(destination)
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 8 def initialize(destination) @destination = destination @middlewares = [] end
Public Instance Methods
append(middleware_class, *args)
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 17 def append(middleware_class, *args) middleware = build_middleware(middleware_class, *args) @middlewares << middleware middleware end
each() { |x| ... }
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 45 def each @middlewares.each { |x| yield x } end
empty?()
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 41 def empty? @middlewares.empty? end
middlewares()
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 13 def middlewares @middlewares.dup.freeze end
on_consume(body, headers, properties)
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 35 def on_consume(body, headers, properties) @middlewares.reverse_each.reduce([body, headers, properties]) do |args, middleware| middleware.on_consume(*args) end end
on_publish(body, headers, properties)
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 29 def on_publish(body, headers, properties) @middlewares.reduce([body, headers, properties]) do |args, middleware| middleware.on_publish(*args) end end
prepend(middleware_class, *args)
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 23 def prepend(middleware_class, *args) middleware = build_middleware(middleware_class, *args) @middlewares.unshift middleware middleware end
Private Instance Methods
build_middleware(middleware_type, *args)
click to toggle source
# File lib/message_driver/middleware/middleware_stack.rb, line 51 def build_middleware(middleware_type, *args) case middleware_type when Hash BlockMiddleware.new(destination, middleware_type) else middleware_type.new(destination, *args) end end