Class: PulseMeter::DygraphsVisualize::SeriesExtractor::Hashed
- Inherits:
-
Simple
- Object
- Simple
- PulseMeter::DygraphsVisualize::SeriesExtractor::Hashed
show all
- Defined in:
- lib/pulse_meter/dygraphs_visualize/series_extractor.rb
Instance Method Summary
collapse
Methods inherited from Simple
#initialize, #opts_to_add
Instance Method Details
#parse_data(value) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
|
# 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) ⇒ Object
50
51
52
53
54
55
56
57
58
|
# 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) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# 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) ⇒ Object
60
61
62
63
64
65
66
67
|
# 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
|