class ExtendedLogger::Registry
Attributes
attr_name[R]
logger_class[R]
sink[R]
Public Class Methods
build(logger_class, attr_name: nil, **sink_arguments)
click to toggle source
# File lib/extended_logger/registry.rb, line 13 def self.build logger_class, attr_name: nil, **sink_arguments attr_name ||= :logger sink = logger_class.sink **sink_arguments instance = new logger_class, sink, attr_name instance.send :const_set, :Logger, logger_class instance end
new(logger_class, sink, attr_name)
click to toggle source
# File lib/extended_logger/registry.rb, line 7 def initialize logger_class, sink, attr_name @attr_name = attr_name @logger_class = logger_class @sink = sink end
Public Instance Methods
build_logger(key)
click to toggle source
# File lib/extended_logger/registry.rb, line 23 def build_logger key logger = logger_class.new sink logger.label = key.name logger end
cache()
click to toggle source
# File lib/extended_logger/registry.rb, line 29 def cache @cache ||= Hash.new do |cache, key| cache[key] = build_logger key end end
clear()
click to toggle source
# File lib/extended_logger/registry.rb, line 35 def clear cache.clear end
extended(object)
click to toggle source
# File lib/extended_logger/registry.rb, line 67 def extended object included object.singleton_class end
get(receiver=nil)
click to toggle source
# File lib/extended_logger/registry.rb, line 71 def get receiver=nil receiver ||= TOPLEVEL_BINDING.receiver key = self.key receiver cache[key] end
included(cls)
click to toggle source
# File lib/extended_logger/registry.rb, line 39 def included cls cls.class_exec self do |registry| ivar_name = "@#{registry.attr_name}" cvar_name = "@@#{registry.attr_name}" attr_writer registry.attr_name define_method registry.attr_name do if instance_variable_defined? ivar_name return instance_variable_get ivar_name end if self.is_a? Module target = self else target = self.class end if target.class_variable_defined? cvar_name return target.class_variable_get cvar_name end logger = registry.get self self.class.class_variable_set cvar_name, logger end end end
key(receiver)
click to toggle source
# File lib/extended_logger/registry.rb, line 79 def key receiver if receiver.is_a? Module receiver else receiver.class end end
level()
click to toggle source
# File lib/extended_logger/registry.rb, line 87 def level sink.level end
level=(reference)
click to toggle source
# File lib/extended_logger/registry.rb, line 91 def level= reference sink.level = levels.resolve reference end
levels()
click to toggle source
# File lib/extended_logger/registry.rb, line 95 def levels sink.levels end
lower_verbosity()
click to toggle source
# File lib/extended_logger/registry.rb, line 99 def lower_verbosity sink.lower_verbosity end
raise_verbosity()
click to toggle source
# File lib/extended_logger/registry.rb, line 103 def raise_verbosity sink.raise_verbosity end
set(receiver, value)
click to toggle source
# File lib/extended_logger/registry.rb, line 107 def set receiver, value key = self.key receiver cache[key] = value end