Class: Intake::Repository

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/intake/repository.rb

Overview

Repository stores references to loggers by logger name.

Instance Method Summary collapse

Constructor Details

#initializeRepository

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

Returns:

  • (Boolean)

    true if logger exists; false otherwise.



18
19
20
# File 'lib/intake/repository.rb', line 18

def key?(name)
  @store.key? canonize_name(name)
end