Class: Helium::Sensor
Instance Attribute Summary collapse
-
#mac ⇒ Object
readonly
Returns the value of attribute mac.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#ports ⇒ Object
readonly
Returns the value of attribute ports.
Attributes inherited from Resource
Instance Method Summary collapse
-
#as_json ⇒ Object
TODO can probably generalize this a bit more.
- #destroy ⇒ Object
-
#initialize(client:, params:) ⇒ Sensor
constructor
A new instance of Sensor.
- #timeseries(size: 1000, port: nil, start_time: nil, end_time: nil, aggtype: nil, aggsize: nil) ⇒ Object
-
#update(name:) ⇒ Object
TODO CRUD methods will be generalized into the Resource object.
Methods inherited from Resource
#==, #created_at, #eql?, #hash, #to_json, #updated_at
Constructor Details
#initialize(client:, params:) ⇒ Sensor
Returns a new instance of Sensor
5 6 7 8 9 10 11 |
# File 'lib/helium/sensor.rb', line 5 def initialize(client:, params:) super(client: client, params: params) @name = params.dig('attributes', 'name') @mac = params.dig('meta', 'mac') @ports = params.dig('meta', 'ports') end |
Instance Attribute Details
#mac ⇒ Object (readonly)
Returns the value of attribute mac
3 4 5 |
# File 'lib/helium/sensor.rb', line 3 def mac @mac end |
#name ⇒ Object (readonly)
Returns the value of attribute name
3 4 5 |
# File 'lib/helium/sensor.rb', line 3 def name @name end |
#ports ⇒ Object (readonly)
Returns the value of attribute ports
3 4 5 |
# File 'lib/helium/sensor.rb', line 3 def ports @ports end |
Instance Method Details
#as_json ⇒ Object
TODO can probably generalize this a bit more
34 35 36 37 38 39 40 |
# File 'lib/helium/sensor.rb', line 34 def as_json super.merge({ name: name, mac: mac, ports: ports }) end |
#destroy ⇒ Object
29 30 31 |
# File 'lib/helium/sensor.rb', line 29 def destroy @client.delete_sensor(self) end |
#timeseries(size: 1000, port: nil, start_time: nil, end_time: nil, aggtype: nil, aggsize: nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/helium/sensor.rb', line 13 def timeseries(size: 1000, port: nil, start_time: nil, end_time: nil, aggtype: nil, aggsize: nil) @client.sensor_timeseries(self, size: size, port: port, start_time: start_time, end_time: end_time, aggtype: aggtype, aggsize: aggsize ) end |
#update(name:) ⇒ Object
TODO CRUD methods will be generalized into the Resource object
25 26 27 |
# File 'lib/helium/sensor.rb', line 25 def update(name:) @client.update_sensor(self, name: name) end |