Sha256: dbf4bad26ca62d3ee8ed33a616f72cc92f341032c330bcfe8dc381426f419cd3

Contents?: true

Size: 1.54 KB

Versions: 3

Compression:

Stored size: 1.54 KB

Contents

module PulseToolbox
  module Sensor
    module Mixins
      module Iterators

        # Executes block for each group
        # @yieldparam group [Symbol] group name
        def each_group
          sensors_config.each_key do |group|
            yield(group)
          end
        end

        # Executes block for each group
        # @yieldparam group [Symbol] group name
        # @yieldparam title [String] group title
        # @yieldparam value_title [String] group sensor value meaning
        def each_group_with_title
          sensors_config.each_key do |group_name|
            group = sensors_config[group_name]
            yield(group_name, group[:title] || group_name,  group[:values] || '')
          end
        end

        # Executes block for each sensor in group
        # @param group [Symbol] group name
        # @yieldparam sensor [Symbol] sensor name
        def each_sensor_in_group(group)
          sensors_config[group][:sensors].each_key do |name|
            sensor = get_sensor(group, name)
            yield(sensor)
          end
        end

        # Executes block for each sensor
        # @yieldparam sensor [Symbol] sensor name
        def each_sensor
          each_group do |group|
            each_sensor_in_group(group) do |sensor|
              yield(sensor)
            end
          end
        end
        
        # Returns all sensors from config
        # @return [Array<Symbol>] sensors list
        def sensors
          list = []
          each_sensor {|s| list << s}
          list
        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pulse-meter-rails-0.1.4 lib/pulse_toolbox/sensor/mixins/iterators.rb
pulse-meter-rails-0.1.3 lib/pulse_toolbox/sensor/mixins/iterators.rb
pulse-meter-rails-0.1.2 lib/pulse_toolbox/sensor/mixins/iterators.rb