class PulseMeter::DygraphsVisualize::SeriesExtractor::Hashed

Public Instance Methods

parse_data(value) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_extractor.rb, line 38
def parse_data(value)
  if value
    if value.is_a?(String)
      JSON.parse(value)
    else
      value
    end
  else
    {}
  end
end
point_data(value) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_extractor.rb, line 50
def point_data(value)
  data = parse_data(value)
  data.keys.map do |k|
    {
      y: to_float(data[k]),
      name: series_title(k)
    }
  end
end
series_data(timeline_data) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_extractor.rb, line 69
def series_data(timeline_data)
  series_data = {}
  parsed_data = timeline_data.map do |sd|
    data = parse_data(sd.value)
    data.keys.each{|k| series_data[k] ||= {name: series_title(k), data: []}}
    [sd.start_time.to_i*1000, data]
  end

  series_names = series_data.keys.sort
  parsed_data.each do |data|
    series_names.each do |k|
      series_data[k][:data] << {x: data[0], y: to_float(data[1][k])}
    end
  end
  series_data.values
end
series_title(key) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_extractor.rb, line 60
def series_title(key)
  annotation = @sensor.annotation
  if annotation && !annotation.empty?
    "#{annotation}: #{key}"
  else
    key
  end
end