Sha256: bf11b412d846f96dc930a8ba290eeed283f79fa8b7f3b75736d6efd79ec2bd13

Contents?: true

Size: 851 Bytes

Versions: 16

Compression:

Stored size: 851 Bytes

Contents

module Helium
  class Label < Resource
    attr_reader :name

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

      @name = @params.dig("attributes", "name")
    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

16 entries across 16 versions & 1 rubygems

Version Path
helium-ruby-0.20.0 lib/helium/label.rb
helium-ruby-0.19.0 lib/helium/label.rb
helium-ruby-0.18.0 lib/helium/label.rb
helium-ruby-0.17.0 lib/helium/label.rb
helium-ruby-0.16.0 lib/helium/label.rb
helium-ruby-0.15.0 lib/helium/label.rb
helium-ruby-0.14.0 lib/helium/label.rb
helium-ruby-0.13.0 lib/helium/label.rb
helium-ruby-0.12.0 lib/helium/label.rb
helium-ruby-0.11.0 lib/helium/label.rb
helium-ruby-0.10.0 lib/helium/label.rb
helium-ruby-0.9.0 lib/helium/label.rb
helium-ruby-0.8.0 lib/helium/label.rb
helium-ruby-0.7.0 lib/helium/label.rb
helium-ruby-0.6.0 lib/helium/label.rb
helium-ruby-0.5.0 lib/helium/label.rb