Sha256: 73f9ae3734aa9d295447386170afa706db1d023087f8c25a6cfea1baa677b47c

Contents?: true

Size: 975 Bytes

Versions: 1

Compression:

Stored size: 975 Bytes

Contents

module Helium
  class Sensor < Resource
    attr_reader :name, :mac, :ports

    def initialize(opts = {})
      super(opts)

      @name  = @params.dig('attributes', 'name')
      @mac   = @params.dig('meta', 'mac')
      @ports = @params.dig('meta', 'ports')
    end

    def timeseries(opts = {})
      size        = opts.fetch(:size, 1000)
      port        = opts.fetch(:port, nil)
      start_time  = opts.fetch(:start_time, nil)
      end_time    = opts.fetch(:end_time, nil)
      aggtype     = opts.fetch(:aggtype, nil)
      aggsize     = opts.fetch(:aggsize, nil)

      @client.sensor_timeseries(self,
        size:       size,
        port:       port,
        start_time: start_time,
        end_time:   end_time,
        aggtype:    aggtype,
        aggsize:    aggsize
      )
    end

    # TODO can probably generalize this a bit more
    def as_json
      super.merge({
        name: name,
        mac: mac,
        ports: ports
      })
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
helium-ruby-0.5.0 lib/helium/sensor.rb