Class: Resilient::CircuitBreaker::Metrics::Storage::Memory

Inherits:
Object
  • Object
show all
Defined in:
lib/resilient/circuit_breaker/metrics/storage/memory.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMemory



8
9
10
# File 'lib/resilient/circuit_breaker/metrics/storage/memory.rb', line 8

def initialize
  @source = Hash.new { |h, k| h[k] = Hash.new(0) }
end

Instance Attribute Details

#sourceObject (readonly)

Returns the value of attribute source.



6
7
8
# File 'lib/resilient/circuit_breaker/metrics/storage/memory.rb', line 6

def source
  @source
end

Instance Method Details

#increment(buckets, keys) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/resilient/circuit_breaker/metrics/storage/memory.rb', line 12

def increment(buckets, keys)
  Array(buckets).each do |bucket|
    Array(keys).each do |key|
      @source[bucket][key] += 1
    end
  end
end

#prune(buckets, keys) ⇒ Object



30
31
32
33
34
# File 'lib/resilient/circuit_breaker/metrics/storage/memory.rb', line 30

def prune(buckets, keys)
  Array(buckets).each do |bucket|
    @source.delete(bucket)
  end
end

#sum(buckets, keys) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/resilient/circuit_breaker/metrics/storage/memory.rb', line 20

def sum(buckets, keys)
  response = Hash.new(0)
  Array(buckets).each do |bucket|
    Array(keys).each do |key|
      response[key] += @source[bucket][key]
    end
  end
  response
end