class DmmUtil::Measurement

Attributes

raw[R]

Public Class Methods

new(attrs) click to toggle source
# File lib/dmm_util/measurement.rb, line 8
def initialize(attrs)
  @raw = attrs
end

Public Instance Methods

method_missing(meth, *args) click to toggle source
Calls superclass method
# File lib/dmm_util/measurement.rb, line 54
def method_missing(meth, *args)
  if raw[:readings].has_key?(meth.to_s.upcase)
     Reading.new(raw[:readings][meth.to_s.upcase])
  else
    super
  end
end
name() click to toggle source
# File lib/dmm_util/measurement.rb, line 12
def name
  raw[:name] || raise("Not a named measurement")
end
prim_function() click to toggle source
# File lib/dmm_util/measurement.rb, line 20
def prim_function
  raw[:prim_function]
end
reading_names() click to toggle source
# File lib/dmm_util/measurement.rb, line 24
def reading_names
  raw[:readings].keys.map{|r| r.downcase.to_sym}
end
to_s() click to toggle source
# File lib/dmm_util/measurement.rb, line 28
def to_s
  order = [:primary, :maximum, :average, :minimum, :rel_reference, 
           :secondary,
           :db_ref, :temp_offset,
           :live, :rel_live]
  existing = reading_names
  res = []
  
  existing.delete(:live) if existing.include?(:live) && self.live == self.primary
  
  (order - [:primary]).each do |name|
    next unless existing.include?(name)
    res << "#{name}: #{self.send(name).to_s}"
  end
  
  (existing - order).each do |name|
    res << "#{name}: #{self.send(name).to_s}"
  end
  
  if res.empty?
    primary.to_s
  else
    "#{primary.to_s} (#{res.join(", ")})"
  end
end
ts() click to toggle source
# File lib/dmm_util/measurement.rb, line 16
def ts 
  raw[:ts] || self.primary.ts
end