Class: Helium::Label

Inherits:
Resource show all
Defined in:
lib/helium/label.rb

Instance Attribute Summary collapse

Attributes inherited from Resource

#id, #params, #type

Instance Method Summary collapse

Methods inherited from Resource

#==, all, all_path, create, #created_at, #destroy, #eql?, find, #hash, initialize_from_path, #metadata, resource_name, #resource_name, #resource_path, singleton, #to_json, #update, #updated_at

Methods included from Utils

#datetime_to_iso, #kebab_case

Constructor Details

#initialize(opts = {}) ⇒ Label

Returns a new instance of Label.



5
6
7
8
9
# File 'lib/helium/label.rb', line 5

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

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

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/helium/label.rb', line 3

def name
  @name
end

Instance Method Details

#add_elements(elements_to_add = []) ⇒ Object



34
35
36
37
# File 'lib/helium/label.rb', line 34

def add_elements(elements_to_add = [])
  elements.add_relationships(elements_to_add)
  self
end

#add_sensors(sensors_to_add = []) ⇒ Object



15
16
17
18
# File 'lib/helium/label.rb', line 15

def add_sensors(sensors_to_add = [])
  sensors.add_relationships(sensors_to_add)
  self
end

#as_jsonObject

TODO can probably generalize this a bit more



50
51
52
53
54
# File 'lib/helium/label.rb', line 50

def as_json
  super.merge({
    name: name
  })
end

#elementsObject



30
31
32
# File 'lib/helium/label.rb', line 30

def elements
  Collection.new(klass: Element, client: @client, belongs_to: self)
end

#remove_elements(elements_to_remove = []) ⇒ Object



44
45
46
47
# File 'lib/helium/label.rb', line 44

def remove_elements(elements_to_remove = [])
  elements.remove_relationships(elements_to_remove)
  self
end

#remove_sensors(sensors_to_remove = []) ⇒ Object



25
26
27
28
# File 'lib/helium/label.rb', line 25

def remove_sensors(sensors_to_remove = [])
  sensors.remove_relationships(sensors_to_remove)
  self
end

#replace_elements(elements_to_replace = []) ⇒ Object



39
40
41
42
# File 'lib/helium/label.rb', line 39

def replace_elements(elements_to_replace = [])
  elements.replace_relationships(elements_to_replace)
  self
end

#replace_sensors(sensors_to_replace = []) ⇒ Object



20
21
22
23
# File 'lib/helium/label.rb', line 20

def replace_sensors(sensors_to_replace = [])
  sensors.replace_relationships(sensors_to_replace)
  self
end

#sensorsObject



11
12
13
# File 'lib/helium/label.rb', line 11

def sensors
  Collection.new(klass: Sensor, client: @client, belongs_to: self)
end