Sha256: d5b18f17f973840ecd2a15289ffbde7aca19fca7fbe4e82b03733e736a65e4b6

Contents?: true

Size: 806 Bytes

Versions: 22

Compression:

Stored size: 806 Bytes

Contents

module Madvertise
  module Logging

    ##
    # MultiLogger is a simple class for multiplexing ImprovedLogger objects. It
    # support attach/detach to send messages to any number of loggers.

    class MultiLogger
      def initialize(*loggers)
        @loggers = loggers
      end

      # Attach an ImprovedLogger object.
      def attach(logger)
        logger.token = @loggers.first.token rescue nil
        @loggers << logger
      end

      # Detach an ImprovedLogger object.
      def detach(logger)
        @loggers.delete(logger)
      end

      # Delegate all method calls to all attached loggers.
      #
      # @private
      def method_missing(name, *args, &block)
        @loggers.map do |logger|
          logger.send(name, *args, &block)
        end.first
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
madvertise-logging-1.3.0 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.3.0-java lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.2.1 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.2.1-java lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.2.0 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.1.2 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.1.1 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.1.0 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.3 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.2 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.1 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.0 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.0.rc4 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.0.rc3 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.0.rc2 lib/madvertise/logging/multi_logger.rb
madvertise-logging-1.0.0.rc1 lib/madvertise/logging/multi_logger.rb
madvertise-logging-0.9.4 lib/madvertise/logging/multi_logger.rb
madvertise-logging-0.9.3 lib/madvertise/logging/multi_logger.rb
madvertise-logging-0.9.2 lib/madvertise/logging/multi_logger.rb
madvertise-logging-0.9.1 lib/madvertise/logging/multi_logger.rb