class Puppet::Util::Metric

A class for handling metrics. This is currently ridiculously hackish.

Attributes

label[RW]
name[RW]
type[RW]
value[RW]
values[W]

Public Class Methods

from_data_hash(data) click to toggle source
   # File lib/puppet/util/metric.rb
13 def self.from_data_hash(data)
14   metric = allocate
15   metric.initialize_from_hash(data)
16   metric
17 end
labelize(name) click to toggle source

Convert a name into a label.

   # File lib/puppet/util/metric.rb
62 def self.labelize(name)
63   name.to_s.capitalize.tr("_", " ")
64 end
new(name,label = nil) click to toggle source
   # File lib/puppet/util/metric.rb
43 def initialize(name,label = nil)
44   @name = name.to_s
45 
46   @label = label || self.class.labelize(name)
47 
48   @values = []
49 end

Public Instance Methods

[](name) click to toggle source

Return a specific value

   # File lib/puppet/util/metric.rb
34 def [](name)
35   value = @values.find { |v| v[0] == name }
36   if value
37     return value[2]
38   else
39     return 0
40   end
41 end
initialize_from_hash(data) click to toggle source
   # File lib/puppet/util/metric.rb
19 def initialize_from_hash(data)
20   @name = data['name']
21   @label = data['label'] || self.class.labelize(@name)
22   @values = data['values']
23 end
newvalue(name,value,label = nil) click to toggle source
   # File lib/puppet/util/metric.rb
51 def newvalue(name,value,label = nil)
52   raise ArgumentError.new("metric name #{name.inspect} is not a string") unless name.is_a? String
53   label ||= self.class.labelize(name)
54   @values.push [name,label,value]
55 end
to_data_hash() click to toggle source
   # File lib/puppet/util/metric.rb
25 def to_data_hash
26   {
27     'name' => @name,
28     'label' => @label,
29     'values' => @values
30   }
31 end
values() click to toggle source
   # File lib/puppet/util/metric.rb
57 def values
58   @values.sort_by { |a| a[1] }
59 end