Class: Intake::Repository
- Inherits:
-
Object
- Object
- Intake::Repository
- Includes:
- Singleton
- Defined in:
- lib/intake/repository.rb
Overview
Repository stores references to loggers by logger name.
Instance Method Summary collapse
- #get_or_add(name, &block) ⇒ Object
-
#initialize ⇒ Repository
constructor
Initializes new instance of [Intake] class.
-
#key?(name) ⇒ Boolean
Tests if logger with given name exists.
Constructor Details
#initialize ⇒ Repository
Initializes new instance of [Intake] class.
11 12 13 14 |
# File 'lib/intake/repository.rb', line 11 def initialize @store = {} @mutex = Mutex.new end |
Instance Method Details
#get_or_add(name, &block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/intake/repository.rb', line 22 def get_or_add(name, &block) return nil if name.nil? name = canonize_name(name) unless @store.key? name @mutex.synchronize do create_logger_unsafe(name, &block) unless @store.key? name end end @store[name] end |
#key?(name) ⇒ Boolean
Tests if logger with given name exists
18 19 20 |
# File 'lib/intake/repository.rb', line 18 def key?(name) @store.key? canonize_name(name) end |