Sha256: 406ad777c3c7831b525b177e8e044aa6df04d141a8d104876d730d14c793ec36
Contents?: true
Size: 936 Bytes
Versions: 1
Compression:
Stored size: 936 Bytes
Contents
# Provides a way of wrapping another broadcaster with logging module Wisper module Broadcasters class LoggerBroadcaster def initialize(logger, broadcaster) @logger = logger @broadcaster = broadcaster end def broadcast(listener, publisher, event, args) @logger.info("[WISPER] #{name(publisher)} published #{event} to #{name(listener)} with #{arg_names(args)}") @broadcaster.broadcast(listener, publisher, event, args) end private def name(object) id_method = %w(id uuid key object_id).find { |id_method| object.respond_to?(id_method) } id = object.send(id_method) class_name = object.class == Class ? object.name : object.class.name "#{class_name}##{id}" end def arg_names(args) return 'no arguments' if args.empty? args.map { |arg| name(arg) }.join(', ') end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wisper-2.0.0.rc1 | lib/wisper/broadcasters/logger_broadcaster.rb |