Class: Mnemonic::Metric::HashMetric

Inherits:
Object
  • Object
show all
Defined in:
lib/mnemonic/metric/hash_metric.rb

Direct Known Subclasses

GCStat, ObjectsCount, ObjectsSize

Defined Under Namespace

Classes: Submetric

Instance Method Summary collapse

Constructor Details

#initialize(*keys) ⇒ HashMetric

Returns a new instance of HashMetric.



21
22
23
24
25
26
27
# File 'lib/mnemonic/metric/hash_metric.rb', line 21

def initialize(*keys)
  @current_hash_value = {}
  kind_table = self.class.const_get(:KIND_TABLE)
  @submetrics = keys.map do |key|
    Submetric.new(self, key, kind_table[key])
  end
end

Instance Method Details

#[](key) ⇒ Object



43
44
45
# File 'lib/mnemonic/metric/hash_metric.rb', line 43

def [](key)
  @current_hash_value[key]
end

#each_submetric(&block) ⇒ Object



39
40
41
# File 'lib/mnemonic/metric/hash_metric.rb', line 39

def each_submetric(&block)
  @submetrics.each(&block)
end

#refresh!Object



34
35
36
37
# File 'lib/mnemonic/metric/hash_metric.rb', line 34

def refresh!
  refresh_hash!
  @submetrics.each(&:refresh!)
end

#start!Object



29
30
31
32
# File 'lib/mnemonic/metric/hash_metric.rb', line 29

def start!
  refresh_hash!
  @submetrics.each(&:start!)
end