class Rubyipmi::Freeipmi::Sensor

Public Class Methods

new(line) click to toggle source
# File lib/rubyipmi/freeipmi/commands/sensors.rb, line 28
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 35
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 41
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