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

Version Path
pulse_meter_visualizer-0.4.22 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.21 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.20 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.19 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.18 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.17 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.16 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.15 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.14 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.13 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.12 lib/pulse_meter/visualize/widgets/gauge.rb
pulse_meter_visualizer-0.4.11 lib/pulse_meter/visualize/widgets/gauge.rb
pulse-meter-0.4.9 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.8 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.7 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.6 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.5 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.4 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.3 lib/pulse-meter/visualize/widgets/gauge.rb
pulse-meter-0.4.2 lib/pulse-meter/visualize/widgets/gauge.rb