class MessageDriver::Middleware::BlockMiddleware

Attributes

on_consume_block[R]
on_publish_block[R]

Public Class Methods

new(destination, opts) click to toggle source
Calls superclass method MessageDriver::Middleware::Base::new
# File lib/message_driver/middleware/block_middleware.rb, line 6
def initialize(destination, opts)
  super(destination)
  raise ArgumentError, 'you must provide at least one of :on_publish and :on_consume' \
    unless opts.keys.any? { |k| [:on_publish, :on_consume].include? k }
  @on_publish_block = opts[:on_publish]
  @on_consume_block = opts[:on_consume]
end

Public Instance Methods

on_consume(body, headers, properties) click to toggle source
# File lib/message_driver/middleware/block_middleware.rb, line 18
def on_consume(body, headers, properties)
  delegate_to_block(on_consume_block, body, headers, properties)
end
on_publish(body, headers, properties) click to toggle source
# File lib/message_driver/middleware/block_middleware.rb, line 14
def on_publish(body, headers, properties)
  delegate_to_block(on_publish_block, body, headers, properties)
end

Private Instance Methods

delegate_to_block(block, body, headers, properties) click to toggle source
# File lib/message_driver/middleware/block_middleware.rb, line 24
def delegate_to_block(block, body, headers, properties)
  if block.nil?
    [body, headers, properties]
  else
    block.call(body, headers, properties)
  end
end