helium-ruby 0.24.0 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e020a0f77221244c8f3610773410718bd4609048
4
- data.tar.gz: a7dfe863e2ba493480596852726401696ea27814
3
+ metadata.gz: d6bfb3de65d88e40c9e014285e0c09d9f0641a09
4
+ data.tar.gz: faf40c337a4d56866cf6fcfc9d6526c8e0c610a0
5
5
  SHA512:
6
- metadata.gz: 17c7b6554c56efc3e1aba9c687a98a0a6a7dbcdd7df6f5575f44238a755031b5b4f5cefa94562d42e404ac1a49099813b9e063fdc28374289f119f83b3018ae3
7
- data.tar.gz: c0e67983f97cb527b104f27ddb3944e86f0176b7af2db386222ea186002a1edb635ca6b621dd9e6c348e3c9bd23c0680420ddacce4829fdecbf962b9aad12d4b
6
+ metadata.gz: 3eeeff34e0a3d97bec69dea00c9d4b53dd5bd01b9313d7f9d889d9c549f088d9c71f5b77267695c7d7fd3e88d1d261d34e27c7e13b9226e2bd922b8b546c4743
7
+ data.tar.gz: bcd20dec4ce7e6a4160e8a1006cca5b6b9dffd67affc2aa208483baf940804f414784cbac6ca8940e6abe06eccb9a42bfb4f716801304f898f78f111d9a33075
@@ -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
@@ -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({
@@ -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: self, params: resource_data)
106
+ return self.class.new(client: @client, params: resource_data)
107
107
  end
108
108
 
109
109
  # Deletes the Resource
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Helium
2
- VERSION = "0.24.0"
2
+ VERSION = "0.25.0"
3
3
  end
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.24.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-03-03 00:00:00.000000000 Z
12
+ date: 2017-04-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: typhoeus