Sha256: 8d6be85f8d981c8b667a74fc15f2ddd00ceecb0a541e2b4518fd6bd3cc6842a5
Contents?: true
Size: 1.26 KB
Versions: 34
Compression:
Stored size: 1.26 KB
Contents
module PulseMeter module Visualize module Widgets class Gauge < PulseMeter::Visualize::Widget class NotAnIndicatorSensorInGaugeWidget < PulseMeter::Visualize::Error; end def data(options = {}) super().merge({ series: values_data }) end protected def ensure_gauge_indicators! sensors.each do |s| unless s.type <= PulseMeter::Sensor::Indicator || s.type <= PulseMeter::Sensor::HashedIndicator raise NotAnIndicatorSensorInGaugeWidget, "Sensor #{s.name} is not an indicator(PulseMeter::Sensor::Indicator or PulseMeter::Sensor::HashedIndicator)" end end end def values_data ensure_gauge_indicators! gauges = [] sensors.map do |s| s_type = s.type case when s_type == PulseMeter::Sensor::Indicator gauges << [s.annotation, s.value] when s_type == PulseMeter::Sensor::HashedIndicator s.value.each_pair do |k, v| gauge_title = "#{s.annotation}: #{k}" gauges << [gauge_title, v] end end end gauges end end end end end
Version data entries
34 entries across 34 versions & 2 rubygems