Class: Nanoc::Telemetry::LabelledCounter

Inherits:
Object
  • Object
show all
Defined in:
lib/nanoc/telemetry/labelled_counter.rb

Instance Method Summary collapse

Constructor Details

#initializeLabelledCounter

Returns a new instance of LabelledCounter



5
6
7
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 5

def initialize
  @counters = {}
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 17

def empty?
  @counters.empty?
end

#get(label) ⇒ Object



13
14
15
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 13

def get(label)
  @counters.fetch(label) { @counters[label] = Counter.new }
end

#increment(label) ⇒ Object



9
10
11
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 9

def increment(label)
  get(label).increment
end

#mapObject



31
32
33
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 31

def map
  @counters.map { |(label, counter)| yield(label, counter) }
end

#value(label) ⇒ Object



21
22
23
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 21

def value(label)
  get(label).value
end

#valuesObject



25
26
27
28
29
# File 'lib/nanoc/telemetry/labelled_counter.rb', line 25

def values
  @counters.each_with_object({}) do |(label, counter), res|
    res[label] = counter.value
  end
end