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