class ShortBus::Monitor

For printing out all messages

Public Class Methods

new(*args) click to toggle source
# File lib/short_bus/monitor.rb, line 8
def initialize(*args)
  @options = {
    message_spec: nil,
    name: 'ShortBus::Monitor',
    service: method(:monitor),
    suppress_payload: false,
    suppress_publisher: false,
    publisher_spec: nil,
    thread_count: 1
  }
  @suppress_payload, @suppress_publisher = nil

  if args[0].is_a?(Hash) && args[0].key?(:driver)
    @options.merge! args[0]
    @driver = @options[:driver]
    @options.delete(:driver)
  elsif args.is_a?(Array) && args.length == 1
    @driver = args[0]
  else
    raise ArgumentError, 'No driver passed.'
  end

  @suppress_payload = @options.delete(:suppress_payload)
  @suppress_publisher = @options.delete(:suppress_publisher)

  start
end

Public Instance Methods

monitor(message) click to toggle source
# File lib/short_bus/monitor.rb, line 36
def monitor(message)
  puts "[#{@options[:name]}]  message = #{message}"
  printf(
    "  %s  payload = %s\n",
    @options[:name] ? ' ' * @options[:name].length : '',
    message.payload.inspect
  ) if message.payload && !@suppress_payload
  printf(
    "  %spublisher = %s\n",
    @options[:name] ? ' ' * @options[:name].length : '',
    message.publisher ? message.publisher : '*ANONYMOUS*'
  ) unless @suppress_publisher
  nil
end
start() click to toggle source
# File lib/short_bus/monitor.rb, line 51
def start
  @service = @driver.subscribe(@options)
end
stop() click to toggle source
# File lib/short_bus/monitor.rb, line 55
def stop
  @driver.unsubscribe @service
end