wavefront-sdk 1.2.1 → 1.3.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.
Files changed (38) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +62 -72
  4. data/.travis.yml +5 -4
  5. data/README.md +10 -0
  6. data/lib/wavefront-sdk/base.rb +28 -8
  7. data/lib/wavefront-sdk/constants.rb +3 -0
  8. data/lib/wavefront-sdk/credentials.rb +36 -17
  9. data/lib/wavefront-sdk/mixins.rb +3 -22
  10. data/lib/wavefront-sdk/notificant.rb +1 -1
  11. data/lib/wavefront-sdk/parse_time.rb +58 -0
  12. data/lib/wavefront-sdk/response.rb +7 -6
  13. data/lib/wavefront-sdk/search.rb +5 -2
  14. data/lib/wavefront-sdk/user.rb +7 -0
  15. data/lib/wavefront-sdk/validators.rb +15 -7
  16. data/lib/wavefront-sdk/version.rb +1 -1
  17. data/lib/wavefront-sdk/write.rb +29 -3
  18. data/spec/.rubocop.yml +3 -0
  19. data/spec/spec_helper.rb +24 -18
  20. data/spec/wavefront-sdk/alert_spec.rb +5 -0
  21. data/spec/wavefront-sdk/base_spec.rb +9 -9
  22. data/spec/wavefront-sdk/credentials_spec.rb +123 -4
  23. data/spec/wavefront-sdk/event_spec.rb +4 -5
  24. data/spec/wavefront-sdk/externallink_spec.rb +1 -1
  25. data/spec/wavefront-sdk/maintenancewindow_spec.rb +2 -2
  26. data/spec/wavefront-sdk/metric_spec.rb +2 -2
  27. data/spec/wavefront-sdk/mixins_spec.rb +1 -1
  28. data/spec/wavefront-sdk/parse_time_spec.rb +65 -0
  29. data/spec/wavefront-sdk/resources/test2.conf +4 -0
  30. data/spec/wavefront-sdk/response_spec.rb +3 -5
  31. data/spec/wavefront-sdk/savedsearch_spec.rb +1 -1
  32. data/spec/wavefront-sdk/source_spec.rb +1 -1
  33. data/spec/wavefront-sdk/user_spec.rb +5 -3
  34. data/spec/wavefront-sdk/validators_spec.rb +65 -62
  35. data/spec/wavefront-sdk/webhook_spec.rb +1 -1
  36. data/spec/wavefront-sdk/write_spec.rb +19 -1
  37. data/wavefront-sdk.gemspec +4 -3
  38. metadata +29 -15
@@ -0,0 +1,4 @@
1
+ [default]
2
+ token = 98765432-dcba-4321-dcba-987654321987
3
+ endpoint = somewhere.wavefront.com
4
+ proxy = wavefront.lab
@@ -6,12 +6,11 @@ require_relative '../../lib/wavefront-sdk/response'
6
6
 
7
7
  WF_JSON = '{"status":{"result":"OK","message":"","code":200},' \
8
8
  '"response":{"items":[{"name":"test agent"}],"offset":0,' \
9
- '"limit":100,"totalItems":3,"moreItems":false}}'
9
+ '"limit":100,"totalItems":3,"moreItems":false}}'.freeze
10
10
 
11
11
  # Unit tests for Response class
12
12
 
13
13
  class WavefrontResponseTest < MiniTest::Test
14
-
15
14
  def test_initialize_good_data
16
15
  wf = Wavefront::Response.new(WF_JSON, 200)
17
16
  assert_instance_of(Wavefront::Response, wf)
@@ -19,11 +18,10 @@ class WavefrontResponseTest < MiniTest::Test
19
18
  assert_respond_to(wf, :response)
20
19
  assert_respond_to(wf.response, :items)
21
20
  refute_respond_to(wf, :to_a)
22
- [:code, :message, :result].each { |m| assert_respond_to(wf.status, m) }
21
+ %i[code message result].each { |m| assert_respond_to(wf.status, m) }
23
22
  assert_equal(wf.status.code, 200)
24
23
  assert_instance_of(Array, wf.response.items)
25
24
  end
26
25
 
27
- def test_initialize_bad_data
28
- end
26
+ def test_initialize_bad_data; end
29
27
  end
@@ -45,7 +45,7 @@ class WavefrontSavedSearchTest < WavefrontTestBase
45
45
  end
46
46
 
47
47
  def test_entity
48
- %w(ALERT EVENT MAINTENANCE_WINDOW DASHBOARD SOURCE AGENT).each do |e|
48
+ %w[ALERT EVENT MAINTENANCE_WINDOW DASHBOARD SOURCE AGENT].each do |e|
49
49
  should_work(:entity, e, "type/#{e}?offset=0&limit=100")
50
50
  should_work(:entity, [e, 20], "type/#{e}?offset=20&limit=100")
51
51
  should_work(:entity, [e, 20, 50], "type/#{e}?offset=20&limit=50")
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative '../spec_helper'
4
4
 
5
- SOURCE = '74a247a9-f67c-43ad-911f-fabafa9dc2f3joyent'
5
+ SOURCE = '74a247a9-f67c-43ad-911f-fabafa9dc2f3joyent'.freeze
6
6
  SOURCE_BODY = {
7
7
  sourceName: 'source.name',
8
8
  tags: {
@@ -7,7 +7,7 @@ GROUP = 'agent_management'.freeze
7
7
 
8
8
  USER_BODY = {
9
9
  emailAddress: USER,
10
- groups: %w(browse)
10
+ groups: %w[browse]
11
11
  }.freeze
12
12
 
13
13
  # Unit tests for User class
@@ -39,7 +39,8 @@ class WavefrontUserTest < WavefrontTestBase
39
39
  def test_grant
40
40
  should_work(:grant, [USER, GROUP], 'user%40example.com/grant',
41
41
  :post, JSON_POST_HEADERS.merge(
42
- {'Content-Type': 'application/x-www-form-urlencoded'}),
42
+ 'Content-Type': 'application/x-www-form-urlencoded'
43
+ ),
43
44
  "group=#{GROUP}")
44
45
  should_be_invalid(:grant, ['abcde', GROUP])
45
46
  assert_raises(ArgumentError) { wf.grant }
@@ -48,7 +49,8 @@ class WavefrontUserTest < WavefrontTestBase
48
49
  def test_revoke
49
50
  should_work(:revoke, [USER, GROUP], 'user%40example.com/revoke',
50
51
  :post, JSON_POST_HEADERS.merge(
51
- {'Content-Type': 'application/x-www-form-urlencoded'}),
52
+ 'Content-Type': 'application/x-www-form-urlencoded'
53
+ ),
52
54
  "group=#{GROUP}")
53
55
  should_be_invalid(:revoke, ['abcde', GROUP])
54
56
  assert_raises(ArgumentError) { wf.revoke }
@@ -3,6 +3,7 @@
3
3
  require 'date'
4
4
  require 'minitest/autorun'
5
5
  require_relative '../spec_helper'
6
+ require_relative '../../lib/wavefront-sdk/constants'
6
7
  require_relative '../../lib/wavefront-sdk/validators'
7
8
 
8
9
  class WavefrontValidatorsTest < MiniTest::Test
@@ -17,28 +18,30 @@ class WavefrontValidatorsTest < MiniTest::Test
17
18
 
18
19
  def test_wf_metric_name?
19
20
  good = ['a.l33t.metric_path-passes', 'NO.NEED.TO.SHOUT',
20
- '"slash/allowed_in_quotes"', '"comma,allowed_in_quotes"']
21
- bad = ['metric.is.(>_<)', { key: 'val' }, 'no/slash', 'no,comma', []]
21
+ '"slash/allowed_in_quotes"', '"comma,allowed_in_quotes"',
22
+ "#{DELTA}deltas.must.pass", "\"#{DELTA}quoted.delta\""]
23
+ bad = ['metric.is.(>_<)', { key: 'val' }, 'no/slash', 'no,comma',
24
+ [] , "not.a.#{DELTA}"]
22
25
  good_and_bad('wf_metric_name?', 'InvalidMetricName', good, bad)
23
26
  end
24
27
 
25
28
  def test_wf_string?
26
29
  good = ['string', 'valid string', 'valid, valid string.',
27
- 'valid-string', ' VALID_string']
28
- bad = ['a' * 1024, '(>_<)', { key: 'val' }, [], 123456]
30
+ 'valid-string', ' VALID_string']
31
+ bad = ['a' * 1024, '(>_<)', { key: 'val' }, [], 123_456]
29
32
  good_and_bad('wf_string?', 'InvalidString', good, bad)
30
33
  end
31
34
 
32
35
  def test_wf_name?
33
- good = %w(name name123)
34
- bad = ['a' * 1024, '(>_<)', { key: 'val' }, [], 123456, '']
36
+ good = %w[name name123]
37
+ bad = ['a' * 1024, '(>_<)', { key: 'val' }, [], 123_456, '']
35
38
  good_and_bad('wf_name?', 'InvalidName', good, bad)
36
39
  end
37
40
 
38
41
  def test_wf_source_id?
39
42
  good = ['validsource1', 'valid-source', 'valid_source',
40
- 'valid.source', 'Valid_Source', 'a' * 1023, '123456']
41
- bad = ['a' * 1024, '(>_<)', { key: 'val' }, [], 123456]
43
+ 'valid.source', 'Valid_Source', 'a' * 1023, '123456']
44
+ bad = ['a' * 1024, '(>_<)', { key: 'val' }, [], 123_456]
42
45
  good_and_bad('wf_source_id?', 'InvalidSourceId', good, bad)
43
46
  end
44
47
 
@@ -50,7 +53,7 @@ class WavefrontValidatorsTest < MiniTest::Test
50
53
 
51
54
  def test_wf_ts?
52
55
  good = [Time.now, Date.today, DateTime.now]
53
- bad = ['2017-03-25 23:52:22 +0000', 1490485946,
56
+ bad = ['2017-03-25 23:52:22 +0000', 1_490_485_946,
54
57
  '#<Date: 2017-03-25 ((2457838j,0s,0n),+0s,2299161j)>']
55
58
  good_and_bad('wf_ts?', 'InvalidTimestamp', good, bad)
56
59
  end
@@ -68,63 +71,63 @@ class WavefrontValidatorsTest < MiniTest::Test
68
71
  end
69
72
 
70
73
  def test_wf_tag?
71
- good = ['abc', 'abc123', '__tag__', 'my:tag', ['abc', 'abc123']]
74
+ good = ['abc', 'abc123', '__tag__', 'my:tag', %w[abc abc123]]
72
75
  bad = ['^^^', Time.now, 'bad tag', ['abc', '!BAD!']]
73
76
  good_and_bad('wf_tag?', 'InvalidTag', good, bad)
74
77
  end
75
78
 
76
79
  def test_wf_point_tags?
77
80
  good = [{},
78
- {tag1: 'val1', tag2: 'val2'},
79
- {tag1: 'val 1', tag2: 'val 2'},
80
- {TAG1: 'val 1', tag2: 'val 2'},
81
- {'TAG-1': 'val 1', tag2: 'val 2'},
82
- {'TAG_1': 'val 1', tag_2: 'val 2'},
83
- {'TAG.1': 'val 1', tag_2: 'val 2'},
84
- {'TAG-1': 'val 1', tag2: 'val 2'},
85
- {tag1: '(>_<)', tag2: '^_^'}]
81
+ { tag1: 'val1', tag2: 'val2' },
82
+ { tag1: 'val 1', tag2: 'val 2' },
83
+ { TAG1: 'val 1', tag2: 'val 2' },
84
+ { 'TAG-1': 'val 1', tag2: 'val 2' },
85
+ { 'TAG_1': 'val 1', tag_2: 'val 2' },
86
+ { 'TAG.1': 'val 1', tag_2: 'val 2' },
87
+ { 'TAG-1': 'val 1', tag2: 'val 2' },
88
+ { tag1: '(>_<)', tag2: '^_^' }]
86
89
  bad = ['key=value',
87
- {'tag 1': 'val1', 'tag 2': 'val2'},
88
- {'TAG*1': 'val 1', tag_2: 'val 2'},
89
- {'(>_<)': 'val1', '^_^': 'val2'},
90
- {tag: nil},
91
- {tag: false},
92
- {tag1: 'v' * 255},
93
- {'k' * 255 => 'val1'},
94
- {'k' * 130 => 'v' * 130}]
90
+ { 'tag 1': 'val1', 'tag 2': 'val2' },
91
+ { 'TAG*1': 'val 1', tag_2: 'val 2' },
92
+ { '(>_<)': 'val1', '^_^': 'val2' },
93
+ { tag: nil },
94
+ { tag: false },
95
+ { tag1: 'v' * 255 },
96
+ { 'k' * 255 => 'val1' },
97
+ { 'k' * 130 => 'v' * 130 }]
95
98
  good_and_bad('wf_point_tags?', 'InvalidTag', good, bad)
96
99
  end
97
100
 
98
101
  def test_wf_proxy_id?
99
- good = %w(fd248f53-378e-4fbe-bbd3-efabace8d724
100
- 917102d1-a10e-497b-ba63-95058f98d4fb)
101
- bad = %w(proxy 17102d1-a10e-497b-ba63-95058f98d4fb)
102
+ good = %w[fd248f53-378e-4fbe-bbd3-efabace8d724
103
+ 917102d1-a10e-497b-ba63-95058f98d4fb]
104
+ bad = %w[proxy 17102d1-a10e-497b-ba63-95058f98d4fb]
102
105
  good_and_bad('wf_proxy_id?', 'InvalidProxyId', good, bad)
103
106
  end
104
107
 
105
108
  def test_wf_cloudintegration_id?
106
- good = %w(3b56f61d-ba79-47f6-905c-d75a0f613d10
107
- 71e435ca-3d8c-43ab-bc1e-d072a335cbe6)
108
- bad = %w(proxy 71e43dca-3d8c-41ab-bc1e-d072a335Xbe6)
109
+ good = %w[3b56f61d-ba79-47f6-905c-d75a0f613d10
110
+ 71e435ca-3d8c-43ab-bc1e-d072a335cbe6]
111
+ bad = %w[proxy 71e43dca-3d8c-41ab-bc1e-d072a335Xbe6]
109
112
  good_and_bad('wf_cloudintegration_id?', 'InvalidCloudIntegrationId',
110
113
  good, bad)
111
114
  end
112
115
 
113
116
  def test_wf_alert_id?
114
- good = [1481553823153, '1481553823153']
115
- bad = [481553823153, '481553823153', [], {}, 'alert']
117
+ good = [1_481_553_823_153, '1481553823153']
118
+ bad = [481_553_823_153, '481553823153', [], {}, 'alert']
116
119
  good_and_bad('wf_alert_id?', 'InvalidAlertId', good, bad)
117
120
  end
118
121
 
119
122
  def test_wf_dashboard_id?
120
- good = %w(my_dash my-dashboard S3 123)
123
+ good = %w[my_dash my-dashboard S3 123]
121
124
  bad = ['a' * 260, 'A Dashboard Name', 'and_1_more!', {}, [], 1234]
122
125
  good_and_bad('wf_dashboard_id?', 'InvalidDashboardId', good, bad)
123
126
  end
124
127
 
125
128
  def test_wf_event_id?
126
- good = %w(1493370839062:test1)
127
- bad = %w(1493370839062 1493370839062test!)
129
+ good = %w[1493370839062:test1]
130
+ bad = %w[1493370839062 1493370839062test!]
128
131
  good_and_bad('wf_event_id?', 'InvalidEventId', good, bad)
129
132
  end
130
133
 
@@ -135,33 +138,33 @@ class WavefrontValidatorsTest < MiniTest::Test
135
138
  end
136
139
 
137
140
  def test_wf_link_id?
138
- good = %w(lq6rPlSg2CFMSrg6)
139
- bad = %w(lq%rPlSg2CFMSrg6, lq6rPlSg2CFMSrg)
141
+ good = %w[lq6rPlSg2CFMSrg6]
142
+ bad = %w[lq%rPlSg2CFMSrg6 lq6rPlSg2CFMSrg]
140
143
  good_and_bad('wf_link_id?', 'InvalidExternalLinkId', good, bad)
141
144
  end
142
145
 
143
146
  def test_wf_link_template?
144
- good = %w(http://link.xyz https://link.xyz/{{holder}})
145
- bad = %w(link.xyz https:/link.xyz/{{holder}})
147
+ good = %w[http://link.xyz https://link.xyz/{{holder}}]
148
+ bad = %w[link.xyz https:/link.xyz/{{holder}}]
146
149
  good_and_bad('wf_link_template?', 'InvalidLinkTemplate', good, bad)
147
150
  end
148
151
 
149
152
  def test_wf_maintenance_window_id?
150
- good = ['1493324005091', 1493324005091, Time.now.to_i * 1000]
151
- bad = [149332400509, '14933240050', Time.now, [], 'abcdef']
153
+ good = ['1493324005091', 1_493_324_005_091, Time.now.to_i * 1000]
154
+ bad = [149_332_400_509, '14933240050', Time.now, [], 'abcdef']
152
155
  good_and_bad('wf_maintenance_window_id?', 'InvalidMaintenanceWindowId',
153
156
  good, bad)
154
157
  end
155
158
 
156
159
  def test_wf_message_id?
157
- good = %w(CLUSTER::IHjNaHM9)
158
- bad = %w(4OfsEM8RcvkM7n 4OfsEM8Rcvk-7nw)
160
+ good = %w[CLUSTER::IHjNaHM9]
161
+ bad = %w[4OfsEM8RcvkM7n 4OfsEM8Rcvk-7nw]
159
162
  good_and_bad('wf_message_id?', 'InvalidMessageId', good, bad)
160
163
  end
161
164
 
162
165
  def test_wf_alert_severity?
163
- good = %w(INFO SMOKE WARN SEVERE)
164
- bad = %w(any THING else)
166
+ good = %w[INFO SMOKE WARN SEVERE]
167
+ bad = %w[any THING else]
165
168
  good_and_bad('wf_alert_severity?', 'InvalidAlertSeverity', good, bad)
166
169
  end
167
170
 
@@ -172,37 +175,37 @@ class WavefrontValidatorsTest < MiniTest::Test
172
175
  end
173
176
 
174
177
  def test_wf_savedsearch_id?
175
- good = %w(e2hLH2FR)
176
- bad = %w(e2hLH2F e2hLH2FRz)
178
+ good = %w[e2hLH2FR]
179
+ bad = %w[e2hLH2F e2hLH2FRz]
177
180
  good_and_bad('wf_savedsearch_id?', 'InvalidSavedSearchId', good, bad)
178
181
  end
179
182
 
180
183
  def test_wf_savedsearch_entity?
181
- good = %w(EVENT MAINTENANCE_WINDOW DASHBOARD ALERT)
182
- bad = %w(1 a day hour)
184
+ good = %w[EVENT MAINTENANCE_WINDOW DASHBOARD ALERT]
185
+ bad = %w[1 a day hour]
183
186
  good_and_bad('wf_savedsearch_entity?',
184
187
  'InvalidSavedSearchEntity', good, bad)
185
188
  end
186
189
 
187
190
  def test_wf_user_id?
188
- good = %w(Some.User@example.com general99+specific@somewhere.net someone@somewhere.com)
189
- bad = %w(word Name)
191
+ good = %w[Some.User@example.com general99+specific@somewhere.net someone@somewhere.com]
192
+ bad = %w[word Name]
190
193
  good_and_bad('wf_user_id?', 'InvalidUserId', good, bad)
191
194
  end
192
195
 
193
196
  def test_wf_webhook_id?
194
- good = %w(4OfsEM8RcvkM7nwG)
195
- bad = %w(4OfsEM8RcvkM7n 4OfsEM8Rcvk-7nw)
197
+ good = %w[4OfsEM8RcvkM7nwG]
198
+ bad = %w[4OfsEM8RcvkM7n 4OfsEM8Rcvk-7nw]
196
199
  good_and_bad('wf_webhook_id?', 'InvalidWebhookId', good, bad)
197
200
  end
198
201
 
199
202
  def test_wf_point?
200
- good = { path: 'test.metric', value: 123456, ts: Time.now.to_i,
203
+ good = { path: 'test.metric', value: 123_456, ts: Time.now.to_i,
201
204
  source: 'testhost', tags: { t1: 'v 1', t2: 'v2' } }
202
205
 
203
206
  assert(wf_point?(good))
204
207
 
205
- %w(tags source ts).each do |t|
208
+ %w[tags source ts].each do |t|
206
209
  p = good.dup
207
210
  p.delete(t)
208
211
  assert(wf_point?(p))
@@ -237,7 +240,7 @@ class WavefrontValidatorsTest < MiniTest::Test
237
240
  end
238
241
 
239
242
  bad = good.dup
240
- bad[:tags] = {'<------>': 45}
243
+ bad[:tags] = { '<------>': 45 }
241
244
 
242
245
  assert_raises(Wavefront::Exception::InvalidTag) do
243
246
  wf_point?(bad)
@@ -245,12 +248,12 @@ class WavefrontValidatorsTest < MiniTest::Test
245
248
  end
246
249
 
247
250
  def test_notificant_id
248
- good = %w(CHTo47HvsPzSaGhh)
249
- bad = ['CTo47HvsPzSaGhh', [], {}, nil, 'bad id']
251
+ good = %w[CHTo47HvsPzSaGhh]
252
+ bad = ['CTo47HvsPzSaGhh', [], {}, nil, 'bad id']
250
253
  end
251
254
 
252
255
  def test_integration_id
253
- good = %w(aws tutorial elasticsearch cassandra go)
254
- bad = ['CTo47HvsPzSaGhh', [], {}, nil, 'bad id']
256
+ good = %w[aws tutorial elasticsearch cassandra go]
257
+ bad = ['CTo47HvsPzSaGhh', [], {}, nil, 'bad id']
255
258
  end
256
259
  end
@@ -8,7 +8,7 @@ WEBHOOK_BODY = {
8
8
  description: 'WebHook Description',
9
9
  template: 'POST Body -- Mustache syntax',
10
10
  title: 'WebHook Title',
11
- triggers: %w(ALERT_OPENED),
11
+ triggers: %w[ALERT_OPENED],
12
12
  recipient: 'http://example.com',
13
13
  customHttpHeaders: {},
14
14
  contentType: 'text/plain'
@@ -23,6 +23,14 @@ POINT_A = [
23
23
  POINT, POINT.dup.update(ts: 1_469_987_588, value: 54_321)
24
24
  ].freeze
25
25
 
26
+ POINTS = [POINT.dup,
27
+ { path: 'test.other_metric',
28
+ value: 89,
29
+ ts: 1_469_987_572,
30
+ source: 'otherhost'}]
31
+
32
+ POINT_L = 'test.metric 123456 1469987572 source=testhost t1="v1" t2="v2"'.freeze
33
+
26
34
  # This class is sufficiently different to the API calling classes
27
35
  # that it doesn't use spec helper or inherit anything.
28
36
  #
@@ -88,6 +96,16 @@ class WavefrontWriteTest < MiniTest::Test
88
96
  assert mocket_spy.has_been_called?
89
97
  end
90
98
 
99
+ def test_paths_to_deltas
100
+ x = wf.paths_to_deltas(POINTS.dup)
101
+ assert_equal(x.size, 2)
102
+
103
+ x.each do |p|
104
+ assert_instance_of(Hash, p)
105
+ assert(p[:path].start_with?(DELTA))
106
+ end
107
+ end
108
+
91
109
  def test_hash_to_wf
92
110
  assert_equal(wf.hash_to_wf(POINT),
93
111
  'test.metric 123456 1469987572 ' \
@@ -107,7 +125,7 @@ class WavefrontWriteTest < MiniTest::Test
107
125
  assert_equal(wf.hash_to_wf(p2),
108
126
  'test.metric 123456 1469987572 source=testhost')
109
127
 
110
- [:value, :path].each do |k|
128
+ %i[value path].each do |k|
111
129
  p3 = POINT.dup
112
130
  p3.delete(k)
113
131
 
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.require_paths = %w(lib)
21
21
  gem.bindir = 'bin'
22
22
 
23
- gem.add_dependency 'faraday', '~> 0.13.0'
23
+ gem.add_dependency 'faraday', '~> 0.14.0'
24
24
  gem.add_dependency 'inifile', '~> 3.0'
25
25
  gem.add_dependency 'addressable', '~> 2.4'
26
26
  gem.add_dependency 'map', '~> 6.6'
@@ -28,10 +28,11 @@ Gem::Specification.new do |gem|
28
28
  gem.add_development_dependency 'bundler', '~> 1.3'
29
29
  gem.add_development_dependency 'rake', '~> 12.0'
30
30
  gem.add_development_dependency 'yard', '~> 0.9.5'
31
- gem.add_development_dependency 'rubocop', '~> 0.50.0'
31
+ gem.add_development_dependency 'rubocop', '~> 0.54.0'
32
32
  gem.add_development_dependency 'webmock', '~> 3.0'
33
- gem.add_development_dependency 'minitest', '~> 5.8', '>= 5.8.0'
33
+ gem.add_development_dependency 'minitest', '~> 5.11'
34
34
  gem.add_development_dependency 'spy', '~> 0.4.0'
35
+ gem.add_development_dependency 'simplecov', '~> 0.16.0'
35
36
 
36
37
  gem.required_ruby_version = Gem::Requirement.new('>= 2.2.0')
37
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wavefront-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Fisher
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-12 00:00:00.000000000 Z
11
+ date: 2018-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.13.0
19
+ version: 0.14.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.13.0
26
+ version: 0.14.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: inifile
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.50.0
117
+ version: 0.54.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.50.0
124
+ version: 0.54.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,20 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '5.8'
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: 5.8.0
145
+ version: '5.11'
149
146
  type: :development
150
147
  prerelease: false
151
148
  version_requirements: !ruby/object:Gem::Requirement
152
149
  requirements:
153
150
  - - "~>"
154
151
  - !ruby/object:Gem::Version
155
- version: '5.8'
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: 5.8.0
152
+ version: '5.11'
159
153
  - !ruby/object:Gem::Dependency
160
154
  name: spy
161
155
  requirement: !ruby/object:Gem::Requirement
@@ -170,6 +164,20 @@ dependencies:
170
164
  - - "~>"
171
165
  - !ruby/object:Gem::Version
172
166
  version: 0.4.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.16.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.16.0
173
181
  description: 'SDK for Wavefront (wavefront.com) API v2 '
174
182
  email: slackboy@gmail.com
175
183
  executables: []
@@ -187,6 +195,7 @@ files:
187
195
  - lib/wavefront-sdk/alert.rb
188
196
  - lib/wavefront-sdk/base.rb
189
197
  - lib/wavefront-sdk/cloudintegration.rb
198
+ - lib/wavefront-sdk/constants.rb
190
199
  - lib/wavefront-sdk/credentials.rb
191
200
  - lib/wavefront-sdk/dashboard.rb
192
201
  - lib/wavefront-sdk/event.rb
@@ -198,6 +207,7 @@ files:
198
207
  - lib/wavefront-sdk/metric.rb
199
208
  - lib/wavefront-sdk/mixins.rb
200
209
  - lib/wavefront-sdk/notificant.rb
210
+ - lib/wavefront-sdk/parse_time.rb
201
211
  - lib/wavefront-sdk/proxy.rb
202
212
  - lib/wavefront-sdk/query.rb
203
213
  - lib/wavefront-sdk/response.rb
@@ -225,9 +235,11 @@ files:
225
235
  - spec/wavefront-sdk/metric_spec.rb
226
236
  - spec/wavefront-sdk/mixins_spec.rb
227
237
  - spec/wavefront-sdk/notificant_spec.rb
238
+ - spec/wavefront-sdk/parse_time_spec.rb
228
239
  - spec/wavefront-sdk/proxy_spec.rb
229
240
  - spec/wavefront-sdk/query_spec.rb
230
241
  - spec/wavefront-sdk/resources/test.conf
242
+ - spec/wavefront-sdk/resources/test2.conf
231
243
  - spec/wavefront-sdk/response_spec.rb
232
244
  - spec/wavefront-sdk/savedsearch_spec.rb
233
245
  - spec/wavefront-sdk/search_spec.rb
@@ -257,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
257
269
  version: '0'
258
270
  requirements: []
259
271
  rubyforge_project:
260
- rubygems_version: 2.6.14
272
+ rubygems_version: 2.7.6
261
273
  signing_key:
262
274
  specification_version: 4
263
275
  summary: SDK for Wavefront API v2
@@ -277,9 +289,11 @@ test_files:
277
289
  - spec/wavefront-sdk/metric_spec.rb
278
290
  - spec/wavefront-sdk/mixins_spec.rb
279
291
  - spec/wavefront-sdk/notificant_spec.rb
292
+ - spec/wavefront-sdk/parse_time_spec.rb
280
293
  - spec/wavefront-sdk/proxy_spec.rb
281
294
  - spec/wavefront-sdk/query_spec.rb
282
295
  - spec/wavefront-sdk/resources/test.conf
296
+ - spec/wavefront-sdk/resources/test2.conf
283
297
  - spec/wavefront-sdk/response_spec.rb
284
298
  - spec/wavefront-sdk/savedsearch_spec.rb
285
299
  - spec/wavefront-sdk/search_spec.rb