Sha256: b3168b669c7baf45878b4cc87e91a9daec92f7158628270a928d471e24ce3b5a
Contents?: true
Size: 1 KB
Versions: 4
Compression:
Stored size: 1 KB
Contents
# Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com # All files in this distribution are subject to the terms of the Ruby license. require 'set' module Ramaze # Bundles different informer instances and sends incoming messages to each. # This is the default with Informer as only member. class LogHub include Informing attr_accessor :loggers attr_accessor :ignored_tags # Takes a list of instances or classes (which will be initialized) and that # are added to @loggers. All messages are then sent to each member. def initialize(*loggers) @loggers = loggers @ignored_tags = Set.new @loggers.map! do |logger| next(nil) if logger == self logger.is_a?(Class) ? logger.new : logger end @loggers.uniq! @loggers.compact! end # integration to Informing def inform(tag, *args) return if @ignored_tags.include?(tag) @loggers.each do |logger| logger.inform(tag, *args) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ramaze-0.1.3 | lib/ramaze/inform/hub.rb |
ramaze-0.1.4 | lib/ramaze/inform/hub.rb |
ramaze-0.2.0 | lib/ramaze/inform/hub.rb |
ramaze-0.2.1 | lib/ramaze/inform/hub.rb |