class RabbitFeed::ConsoleConsumer::Formatter

Constants

BORDER_CHAR
BORDER_WIDTH
DIVIDER_CHAR
NEWLINE

Attributes

event[R]

Public Class Methods

new(event) click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 77
def initialize(event)
  @event = event
end

Public Instance Methods

to_s() click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 81
def to_s
  [header, metadata, divider, payload, footer].join(NEWLINE)
end

Private Instance Methods

divider() click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 101
def divider
  DIVIDER_CHAR * BORDER_WIDTH
end
header() click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 87
def header
  event_detail = "#{event.name}: #{event.created_at_utc}"
  border_filler = BORDER_CHAR * ((BORDER_WIDTH - event_detail.length) / 2)
  border_filler + event_detail + border_filler
end
metadata() click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 97
def metadata
  pretty_print_hash 'Event metadata', event.metadata
end
payload() click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 105
def payload
  pretty_print_hash 'Event payload', event.payload
end
pretty_print_hash(description, hash) click to toggle source
# File lib/rabbit_feed/console_consumer.rb, line 109
def pretty_print_hash(description, hash)
  '#' + description + NEWLINE +
    hash.keys.sort.map do |key|
      "#{key}: #{hash[key]}"
    end.join(NEWLINE)
end