helium-ruby 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/helium/element.rb +41 -0
- data/lib/helium/label.rb +19 -0
- data/lib/helium/resource.rb +1 -1
- data/lib/helium/sensor.rb +3 -0
- data/lib/helium/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6bfb3de65d88e40c9e014285e0c09d9f0641a09
|
4
|
+
data.tar.gz: faf40c337a4d56866cf6fcfc9d6526c8e0c610a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3eeeff34e0a3d97bec69dea00c9d4b53dd5bd01b9313d7f9d889d9c549f088d9c71f5b77267695c7d7fd3e88d1d261d34e27c7e13b9226e2bd922b8b546c4743
|
7
|
+
data.tar.gz: bcd20dec4ce7e6a4160e8a1006cca5b6b9dffd67affc2aa208483baf940804f414784cbac6ca8940e6abe06eccb9a42bfb4f716801304f898f78f111d9a33075
|
data/lib/helium/element.rb
CHANGED
@@ -14,6 +14,14 @@ module Helium
|
|
14
14
|
def sensors
|
15
15
|
Collection.new(klass: Sensor, client: @client, belongs_to: self)
|
16
16
|
end
|
17
|
+
|
18
|
+
def self.all_path
|
19
|
+
"/element?include=label"
|
20
|
+
end
|
21
|
+
|
22
|
+
def labels
|
23
|
+
Collection.new(klass: Label, client: @client, belongs_to: self)
|
24
|
+
end
|
17
25
|
|
18
26
|
def device_configuration
|
19
27
|
@client.element_device_configuration(self)
|
@@ -52,5 +60,38 @@ module Helium
|
|
52
60
|
device_type: device_type
|
53
61
|
})
|
54
62
|
end
|
63
|
+
|
64
|
+
def add_labels(labels_to_add = [])
|
65
|
+
# There's no first-class support for modifying the labels of a element in
|
66
|
+
# the API yet, so we modify each label's relationship to the element. Once
|
67
|
+
# this is supported in the API, this can use #add_relationships instead.
|
68
|
+
# Same comment applies for the following 3 functions
|
69
|
+
labels_to_add = Array(labels_to_add)
|
70
|
+
labels_to_add.each do |label|
|
71
|
+
label.add_elements(self)
|
72
|
+
end
|
73
|
+
self
|
74
|
+
end
|
75
|
+
|
76
|
+
def replace_labels(labels_to_replace = [])
|
77
|
+
# To support replacement, we remove this element from each label, and then
|
78
|
+
# add it to the specified set
|
79
|
+
labels_to_replace = Array(labels_to_replace)
|
80
|
+
labels.each do |label|
|
81
|
+
label.remove_elements(self)
|
82
|
+
end
|
83
|
+
labels_to_replace.each do |label|
|
84
|
+
label.add_elements(self)
|
85
|
+
end
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
89
|
+
def remove_labels(labels_to_remove = [])
|
90
|
+
labels_to_remove = Array(labels_to_remove)
|
91
|
+
labels_to_remove.each do |label|
|
92
|
+
label.remove_elements(self)
|
93
|
+
end
|
94
|
+
self
|
95
|
+
end
|
55
96
|
end
|
56
97
|
end
|
data/lib/helium/label.rb
CHANGED
@@ -27,6 +27,25 @@ module Helium
|
|
27
27
|
self
|
28
28
|
end
|
29
29
|
|
30
|
+
def elements
|
31
|
+
Collection.new(klass: Element, client: @client, belongs_to: self)
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_elements(elements_to_add = [])
|
35
|
+
elements.add_relationships(elements_to_add)
|
36
|
+
self
|
37
|
+
end
|
38
|
+
|
39
|
+
def replace_elements(elements_to_replace = [])
|
40
|
+
elements.replace_relationships(elements_to_replace)
|
41
|
+
self
|
42
|
+
end
|
43
|
+
|
44
|
+
def remove_elements(elements_to_remove = [])
|
45
|
+
elements.remove_relationships(elements_to_remove)
|
46
|
+
self
|
47
|
+
end
|
48
|
+
|
30
49
|
# TODO can probably generalize this a bit more
|
31
50
|
def as_json
|
32
51
|
super.merge({
|
data/lib/helium/resource.rb
CHANGED
@@ -103,7 +103,7 @@ module Helium
|
|
103
103
|
response = @client.patch(resource_path, body: body)
|
104
104
|
resource_data = JSON.parse(response.body)["data"]
|
105
105
|
|
106
|
-
return self.class.new(client:
|
106
|
+
return self.class.new(client: @client, params: resource_data)
|
107
107
|
end
|
108
108
|
|
109
109
|
# Deletes the Resource
|
data/lib/helium/sensor.rb
CHANGED
@@ -93,6 +93,7 @@ module Helium
|
|
93
93
|
labels_to_add.each do |label|
|
94
94
|
label.add_sensors(self)
|
95
95
|
end
|
96
|
+
self
|
96
97
|
end
|
97
98
|
|
98
99
|
def replace_labels(labels_to_replace = [])
|
@@ -105,6 +106,7 @@ module Helium
|
|
105
106
|
labels_to_replace.each do |label|
|
106
107
|
label.add_sensors(self)
|
107
108
|
end
|
109
|
+
self
|
108
110
|
end
|
109
111
|
|
110
112
|
def remove_labels(labels_to_remove = [])
|
@@ -112,6 +114,7 @@ module Helium
|
|
112
114
|
labels_to_remove.each do |label|
|
113
115
|
label.remove_sensors(self)
|
114
116
|
end
|
117
|
+
self
|
115
118
|
end
|
116
119
|
end
|
117
120
|
end
|
data/lib/helium/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: helium-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.25.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Allen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-04-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|