Sha256: 9a85cb9ff4652a4a104190ea5f5f6aa01eb87d4b1ef08d80cc385adf228c9fd0

Contents?: true

Size: 1017 Bytes

Versions: 1

Compression:

Stored size: 1017 Bytes

Contents

module Helium
  class Label < Resource
    attr_reader :name

    def initialize(client:, params:)
      super(client: client, params: params)

      @name = params.dig("attributes", "name")
    end

    def update(name:)
      @client.update_label(self, name: name)
    end

    def destroy
      @client.delete_label(self)
    end

    # TODO: would be nice to wrap this in a proxy collection, that way
    # we could do something like label.sensors << new_sensor
    def sensors
      @client.label_sensors(self)
    end

    def add_sensors(sensors_to_add = [])
      sensors_to_add = Array(sensors_to_add)

      @client.update_label_sensors(self, sensors: sensors + sensors_to_add)
    end

    def remove_sensors(sensors_to_remove = [])
      sensors_to_remove = Array(sensors_to_remove)

      @client.update_label_sensors(self, sensors: sensors - sensors_to_remove)
    end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
helium-ruby-0.4.0 lib/helium/label.rb