Module: Labkit::ApplicationSli::ClassMethods

Defined in:
lib/labkit/application_sli.rb

Constant Summary collapse

INITIALIZATION_MUTEX =
Mutex.new

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object



10
11
12
# File 'lib/labkit/application_sli.rb', line 10

def [](name)
  known_slis[name] || initialize_sli(name, [])
end

#initialize_sli(name, possible_label_combinations) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/labkit/application_sli.rb', line 14

def initialize_sli(name, possible_label_combinations)
  INITIALIZATION_MUTEX.synchronize do
    next known_slis[name] if initialized?(name)

    sli = new(name)
    sli.initialize_counters(possible_label_combinations)
    known_slis[name] = sli
  end
end

#initialized?(name) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/labkit/application_sli.rb', line 24

def initialized?(name)
  known_slis.key?(name) && known_slis[name].initialized?
end