Class: ActiveLogger::Repository

Inherits:
Object
  • Object
show all
Extended by:
MonitorMixin
Includes:
Singleton
Defined in:
lib/active_logger/repository.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRepository

Returns a new instance of Repository.



19
20
21
# File 'lib/active_logger/repository.rb', line 19

def initialize
  @loggers = {}
end

Instance Attribute Details

#loggersObject (readonly)

Returns the value of attribute loggers.



17
18
19
# File 'lib/active_logger/repository.rb', line 17

def loggers
  @loggers
end

Class Method Details

.[](name) ⇒ Object



27
28
29
30
31
# File 'lib/active_logger/repository.rb', line 27

def self.[](name)
  synchronize do
    instance.__fetch__(name) || (raise ActiveLogger::LoggerNotFound, name)
  end
end

.[]=(name, logger) ⇒ Object



23
24
25
# File 'lib/active_logger/repository.rb', line 23

def self.[]=(name, logger)
  synchronize { instance.loggers[name] = logger }
end

.loggersObject



33
34
35
# File 'lib/active_logger/repository.rb', line 33

def self.loggers
  synchronize { instance.loggers }
end

Instance Method Details

#__fetch__(name) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/active_logger/repository.rb', line 37

def __fetch__(name)
  logger = loggers[name] || loggers[name.to_s]

  return __fetch__(name.superclass) if logger.nil? && name.respond_to?(:superclass)

  logger
end