wavefront-sdk 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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