class Rubyipmi::Freeipmi::Sensor

Public Class Methods

new(line) click to toggle source
# File lib/rubyipmi/freeipmi/commands/sensors.rb, line 86
def initialize(line)
  parse(line)
  self[:name] = normalize(self[:name])
end

Private Instance Methods

normalize(text) click to toggle source
# File lib/rubyipmi/freeipmi/commands/sensors.rb, line 92
def normalize(text)
  text.gsub(/\ /, '_').gsub(/\./, '').downcase
end
parse(line) click to toggle source

Parse the individual sensor Note: not all fields will exist on every server

# File lib/rubyipmi/freeipmi/commands/sensors.rb, line 98
def parse(line)
  fields = [:id_num, :name, :value, :unit, :status, :type, :state, :lower_nonrec,
            :lower_crit,:lower_noncrit, :upper_crit, :upper_nonrec, :asserts_enabled, :deasserts_enabled  ]
  data = line.split(/\|/)
  # should we ever encounter a field not in the fields list, just use a counter based fieldname so we just
  # use field1, field2, field3, ...
  i = 0
  data.each do | value |
    field ||= fields.shift || "field#{i}"
    self[field] = value.strip
    i = i.next
  end
end