wavefront-sdk 2.5.1 → 3.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42ae7285512a6926765e9db64a2af0f21927864655acf1a708138e8e2122dbcf
4
- data.tar.gz: 0a05d21b257accb683c08f768cb4d8e33fbd93dfe625e8cfb59ade6e8b766641
3
+ metadata.gz: '048989974d0868e696c8f50dc59007960e2456ca0e9ccb64d632b83d854124bf'
4
+ data.tar.gz: 66bc38c3d72355594b51aa5cbe9b34ab069f158cc133f168c94ba28f25dde79d
5
5
  SHA512:
6
- metadata.gz: e46a38fae37d192440ebc417dba659fab395788b7ee644bb30d31cd90951e58c5748fad3bff100170ae6babbc4fdadbc1a623810d6f0ca93397f470bfeb14118
7
- data.tar.gz: bca0a1ac53c6556f756f5ac5dc195986a180e0fbb78ebc423b37151c000421c29c21bb0fe032dfc59debd700c53d83c66f9cac08bebb26a91059cf848683bbe1
6
+ metadata.gz: e4026c3af06d8e8d3de5a13f02cbc006072fe6852d95a04219b91383db003b97516ee56fd12abf1c2f47a34e238a38fd75dd02707e385b1e9c474c7d1acb0dca
7
+ data.tar.gz: fe902524b8af12691cbe40d50ffcb2f24b3aac5b35472743c9774009a33e464e621d6879e806ac0d41c20f71c1b54d3ebfd30e089ed43b029984afb205f08125
data/.rubocop.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  AllCops:
3
- TargetRubyVersion: 2.2
3
+ DisplayStyleGuide: true
4
+ TargetRubyVersion: 2.3
4
5
 
5
6
  Style/FrozenStringLiteralComment:
6
7
  Enabled: false
data/.travis.yml CHANGED
@@ -1,12 +1,11 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.2.10
5
4
  - 2.3.8
6
5
  - 2.4.5
7
- - 2.5.3
8
- - 2.6.0
9
- before_install: gem install bundler -v 1.17.3 --no-document
6
+ - 2.5.5
7
+ - 2.6.2
8
+ before_install: gem install bundler --no-document
10
9
  deploy:
11
10
  provider: rubygems
12
11
  api_key:
@@ -15,7 +14,7 @@ deploy:
15
14
  on:
16
15
  tags: true
17
16
  repo: snltd/wavefront-sdk
18
- ruby: 2.5.3
17
+ ruby: 2.6.2
19
18
  notifications:
20
19
  email: false
21
20
  slack:
data/HISTORY.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ # 3.0.0
4
+ * Drop support for Ruby 2.2. (Potentially breaking change.)
5
+ * Add `Wavefront::Settings` class to cover new `settings` API
6
+ endpoint.
7
+ * Add ACL methods to `Wavefront::Dashboard` class.
8
+ * Add `Dashboard#favourite` and `Dashboard#unfavourite` methods, as
9
+ aliases to `favorite` and `unfavorite`.
10
+ * Add `sort_field` to `Wavefront::Search` options. Lets user select
11
+ the field on which to sort results.
12
+
3
13
  ## 2.5.1 (06/03/2019)
4
14
  * Fix messy handling of raw query errors.
5
15
 
data/README.md CHANGED
@@ -24,7 +24,7 @@ or to build locally,
24
24
  $ gem build wavefront-sdk.gemspec
25
25
  ```
26
26
 
27
- `wavefront-sdk` requires Ruby >= 2.2. All its dependencies are pure
27
+ `wavefront-sdk` requires Ruby >= 2.3. All its dependencies are pure
28
28
  Ruby, right the way down, so a compiler should never be required to
29
29
  install it.
30
30
 
@@ -39,14 +39,17 @@ module Wavefront
39
39
  # root of the URI is dynamically derived by the #setup_endpoint
40
40
  # method.
41
41
  #
42
+ # @param path [String] uri path
42
43
  # @param headers [Hash] additional headers
44
+ # @param request_opts [Hash] Faraday request parameters
43
45
  # @return [URI::HTTPS]
44
46
  #
45
- def mk_conn(path, headers = {})
47
+ def mk_conn(path, headers = {}, opts = {})
46
48
  url = format('%s://%s%s', net[:scheme], net[:endpoint],
47
49
  [net[:api_base], path].uri_concat)
48
- Faraday.new(url: Addressable::URI.encode(url),
49
- headers: net[:headers].merge(headers))
50
+ set_opts = { url: Addressable::URI.encode(url),
51
+ headers: net[:headers].merge(headers) }
52
+ Faraday.new(set_opts.merge(opts))
50
53
  end
51
54
 
52
55
  # Make a GET call to the Wavefront API and return the result as
@@ -55,11 +58,30 @@ module Wavefront
55
58
  # @param path [String] path to be appended to the
56
59
  # #net[:api_base] path.
57
60
  # @param query [Hash] optional key-value pairs with will be made
58
- # into aquery string
61
+ # into a query string
62
+ # @param request_opts [Hash] parameters to pass through to
63
+ # Faraday
59
64
  # @return [Hash] API response
60
65
  #
61
66
  def get(path, query = {})
62
- make_call(mk_conn(path), :get, nil, query)
67
+ make_call(mk_conn(path, {}), :get, nil, query)
68
+ end
69
+
70
+ # Had to introduce this for the Wavefront::Dashboard#acls
71
+ # method, which uses a query string of multiple id=s. By default
72
+ # Faraday only uses the last one. You must set the
73
+ # `params_encoder`. Rather than convolute the existing logic, it
74
+ # was cleaner to add this method. Parameters are same as #get.
75
+ #
76
+ def get_flat_params(path, query = {})
77
+ conn = mk_conn(path,
78
+ {},
79
+ request: {
80
+ params_encoder: Faraday::FlatParamsEncoder
81
+ },
82
+ params: query)
83
+
84
+ make_call(conn, :get)
63
85
  end
64
86
 
65
87
  # Make a POST call to the Wavefront API and return the result as
@@ -162,6 +184,8 @@ module Wavefront
162
184
  end
163
185
 
164
186
  def make_single_call(conn, method, *args)
187
+ pp args if debug
188
+
165
189
  resp = conn.public_send(method, *args)
166
190
 
167
191
  if debug
@@ -93,6 +93,7 @@ module Wavefront
93
93
  wf_dashboard_id?(id)
94
94
  api.post([id, 'favorite'].uri_concat)
95
95
  end
96
+ alias favourite favorite
96
97
 
97
98
  # GET /api/v2/dashboard/id/history
98
99
  # Get the version history of a dashboard.
@@ -177,5 +178,64 @@ module Wavefront
177
178
  wf_dashboard_id?(id)
178
179
  api.post([id, 'unfavorite'].uri_concat)
179
180
  end
181
+ alias unfavourite unfavorite
182
+
183
+ # GET /api/v2/dashboard/acl
184
+ # Get list of Access Control Lists for the specified dashboards
185
+ # @param id_list [Array[String]] array of dashboard IDs
186
+ # @return [Wavefront::Response]
187
+ #
188
+ def acls(id_list)
189
+ id_list.each { |id| wf_dashboard_id?(id) }
190
+ api.get_flat_params('acl', id: id_list)
191
+ end
192
+
193
+ # POST /api/v2/dashboard/acl/add
194
+ # Adds the specified ids to the given dashboards' ACL
195
+ # @param id [String] ID of dashboard
196
+ # @param view [Array[Hash]] array of entities allowed to view
197
+ # the dashboard. Entities may be users or groups, and are
198
+ # defined as a Hash with keys :id and :name. For users the two
199
+ # will be the same, for groups, not.
200
+ # @param modify [Array[Hash]] array of entities allowed to
201
+ # view and modify the dashboard. Same rules as @view.
202
+ # @return [Wavefront::Response]
203
+ #
204
+ def acl_add(id, view = [], modify = [])
205
+ api.post(%w[acl add].uri_concat,
206
+ acl_body(id, view, modify),
207
+ 'application/json')
208
+ end
209
+
210
+ # POST /api/v2/dashboard/acl/remove
211
+ # Removes the specified ids from the given dashboards' ACL
212
+ #
213
+ # Though the API method is 'remove', the acl method names have
214
+ # been chosen to correspond with the tag methods.
215
+ #
216
+ def acl_delete(id, view = [], modify = [])
217
+ api.post(%w[acl remove].uri_concat,
218
+ acl_body(id, view, modify),
219
+ 'application/json')
220
+ end
221
+
222
+ # PUT /api/v2/dashboard/acl/set
223
+ # Set ACL for the specified dashboards
224
+ #
225
+ def acl_set(id, view = [], modify = [])
226
+ api.put(%w[acl set].uri_concat, acl_body(id, view, modify))
227
+ end
228
+
229
+ private
230
+
231
+ def acl_body(id, view, modify)
232
+ wf_dashboard_id?(id)
233
+
234
+ raise ArgumentError unless view.is_a?(Array) && modify.is_a?(Array)
235
+ raise ArgumentError unless view.all? { |h| h.is_a?(Hash) }
236
+ raise ArgumentError unless modify.all? { |h| h.is_a?(Hash) }
237
+
238
+ [{ entityId: id, viewAcl: view, modifyAcl: modify }]
239
+ end
180
240
  end
181
241
  end
@@ -1 +1,4 @@
1
- WF_SDK_VERSION = '2.5.1'.freeze
1
+ require 'pathname'
2
+
3
+ WF_SDK_VERSION = '3.0.0'.freeze
4
+ WF_SDK_LOCATION = Pathname.new(__FILE__).dirname.parent.parent.parent
@@ -59,8 +59,8 @@ module Wavefront
59
59
  array2dist(dist[:value]),
60
60
  dist[:path] || raise,
61
61
  dist.fetch(:source, HOSTNAME),
62
- dist[:tags] && dist[:tags].to_wf_tag,
63
- opts[:tags] && opts[:tags].to_wf_tag).squeeze(' ').strip
62
+ dist[:tags]&.to_wf_tag,
63
+ opts[:tags]&.to_wf_tag).squeeze(' ').strip
64
64
  rescue StandardError
65
65
  raise Wavefront::Exception::InvalidDistribution
66
66
  end
@@ -70,7 +70,7 @@ module Wavefront
70
70
  #
71
71
  def user_page_size(args)
72
72
  arg_val = limit_and_offset(args)[:offset].to_i
73
- return arg_val if arg_val && arg_val > 0
73
+ return arg_val if arg_val&.positive?
74
74
  PAGE_SIZE
75
75
  end
76
76
 
@@ -53,13 +53,19 @@ module Wavefront
53
53
  q.tap { |iq| iq[:matchingMethod] ||= 'CONTAINS' }
54
54
  end
55
55
 
56
- ret[:sort] = { field: [query].flatten.first[:key],
57
- ascending: !options[:desc] || true }
56
+ ret[:sort] = sort_field(options, query)
58
57
  end
59
58
 
60
59
  ret
61
60
  end
62
61
 
62
+ def sort_field(options, query)
63
+ field = options[:sort_field] || [query].flatten.first[:key]
64
+
65
+ { field: field,
66
+ ascending: !options[:desc] || true }
67
+ end
68
+
63
69
  # POST /api/v2/search/entity
64
70
  # POST /api/v2/search/entity/deleted
65
71
  # Run a search query. This single method maps to many API paths.
@@ -0,0 +1,51 @@
1
+ require_relative 'core/api'
2
+
3
+ module Wavefront
4
+ #
5
+ # Manage and query Wavefront customer settings. Corresponds to the
6
+ # "system preferences" page in the UI.
7
+ #
8
+ class Settings < CoreApi
9
+ def api_base
10
+ '/customer'
11
+ end
12
+
13
+ # GET /api/v2/customer/permissions
14
+ # Get all permissions
15
+ #
16
+ def permissions
17
+ api.get(:permissions)
18
+ end
19
+
20
+ # GET /api/v2/customer/preferences
21
+ # Get customer preferences
22
+ #
23
+ def preferences
24
+ api.get(:preferences)
25
+ end
26
+
27
+ # POST /api/v2/customer/preferences
28
+ # Update selected fields of customer preferences
29
+ #
30
+ # @param body [Hash] See the API documentation for the model
31
+ # schema. At the time of writing, permissible fields are
32
+ # showQuerybuilderByDefault [Bool]
33
+ # hideTSWhenQuerybuilderShown [Bool]
34
+ # landingDashboardSlug [String]
35
+ # showOnboarding [Bool]
36
+ # grantModifyAccessToEveryone [Bool]
37
+ # defaultUserGroups: [Array[String]]
38
+ # invitePermissions: [Array[String]]
39
+ #
40
+ def update_preferences(body)
41
+ api.post(:preferences, body, 'application/json')
42
+ end
43
+
44
+ # GET /api/v2/customer/preferences/defaultUserGroups
45
+ # Get default user groups customer preferences
46
+ #
47
+ def default_user_groups
48
+ api.get('/preferences/defaultUserGroups')
49
+ end
50
+ end
51
+ end
@@ -35,7 +35,9 @@ module Wavefront
35
35
  end
36
36
 
37
37
  def message
38
- obj[:message] || nil
38
+ return obj[:message] if obj[:message]
39
+ return obj[:error] if obj[:error]
40
+ nil
39
41
  end
40
42
 
41
43
  def code
@@ -162,7 +162,7 @@ module Wavefront
162
162
  #
163
163
  def wf_version?(version)
164
164
  version = version.to_i if version.is_a?(String) && version =~ /^\d+$/
165
- return true if version.is_a?(Integer) && version > 0
165
+ return true if version.is_a?(Integer) && version.positive?
166
166
  raise Wavefront::Exception::InvalidVersion
167
167
  end
168
168
 
@@ -503,7 +503,7 @@ module Wavefront
503
503
  # count is not valid
504
504
  #
505
505
  def wf_distribution_count?(count)
506
- return true if count.is_a?(Integer) && count > 0
506
+ return true if count.is_a?(Integer) && count.positive?
507
507
  raise Wavefront::Exception::InvalidDistributionCount
508
508
  end
509
509
  end
@@ -182,8 +182,8 @@ module Wavefront
182
182
  point[:value] || raise,
183
183
  point.fetch(:ts, nil),
184
184
  point.fetch(:source, HOSTNAME),
185
- point[:tags] && point[:tags].to_wf_tag,
186
- opts[:tags] && opts[:tags].to_wf_tag]
185
+ point[:tags]&.to_wf_tag,
186
+ opts[:tags]&.to_wf_tag]
187
187
  end
188
188
 
189
189
  private
@@ -13,15 +13,19 @@ BAD_RESP = "error='not_found'
13
13
  message='resource cannot be found'
14
14
  trackingId=eca22ddc-848b-4e67-876a-366145c8a759".freeze
15
15
 
16
- # Unit tests for Response class. Also inderectly tests the Status
16
+ ERR_RESP = { error: 'HTTP 415 Unsupported Media Type',
17
+ trackingId: 'ce231eaf-8d0e-4138-a82d-12725376a3b0' }.to_json
18
+
19
+ # Unit tests for Response class. Also indirectly tests the Status
17
20
  # type.
18
21
  #
19
22
  class WavefrontResponseTest < MiniTest::Test
20
- attr_reader :wfg, :wfb
23
+ attr_reader :wfg, :wfb, :wfe
21
24
 
22
25
  def setup
23
26
  @wfg = Wavefront::Response.new(GOOD_RESP, 200)
24
27
  @wfb = Wavefront::Response.new(BAD_RESP, 404)
28
+ @wfe = Wavefront::Response.new(ERR_RESP, 415)
25
29
  end
26
30
 
27
31
  def test_initialize_good_data
@@ -57,6 +61,21 @@ class WavefrontResponseTest < MiniTest::Test
57
61
  refute wfb.next_item
58
62
  end
59
63
 
64
+ def test_initialize_err_data
65
+ assert_instance_of(Wavefront::Response, wfe)
66
+ assert_respond_to(wfe, :status)
67
+ assert_respond_to(wfe, :response)
68
+ refute_respond_to(wfe, :to_a)
69
+ refute_respond_to(wfe.response, :items)
70
+ assert_instance_of(Wavefront::Type::Status, wfe.status)
71
+ assert_equal(415, wfe.status.code)
72
+ assert_equal('ERROR', wfe.status.result)
73
+ assert_equal('HTTP 415 Unsupported Media Type', wfe.status.message)
74
+ refute wfe.ok?
75
+ refute wfe.more_items?
76
+ refute wfe.next_item
77
+ end
78
+
60
79
  # This is a private method, so we test its public interface
61
80
  #
62
81
  def test_build_response
@@ -22,6 +22,11 @@ DASHBOARD_BODY = {
22
22
  ]
23
23
  }.freeze
24
24
 
25
+ U_ACL_1 = { name: 'someone@example.com', id: 'someone@example.com' }.freeze
26
+ U_ACL_2 = { name: 'other@elsewhere.com', id: 'other@elsewhere.com' }.freeze
27
+ GRP_ACL = { name: 'example group',
28
+ id: 'f8dc0c14-91a0-4ca9-8a2a-7d47f4db4672' }.freeze
29
+
25
30
  # Unit tests for dashboard class
26
31
  #
27
32
  class WavefrontDashboardTest < WavefrontTestBase
@@ -61,6 +66,8 @@ class WavefrontDashboardTest < WavefrontTestBase
61
66
  def test_favorite
62
67
  should_work(:favorite, DASHBOARD, ["#{DASHBOARD}/favorite",
63
68
  nil], :post, POST_HEADERS)
69
+ should_work(:favourite, DASHBOARD, ["#{DASHBOARD}/favorite",
70
+ nil], :post, POST_HEADERS)
64
71
  should_be_invalid(:favorite)
65
72
  end
66
73
 
@@ -82,6 +89,55 @@ class WavefrontDashboardTest < WavefrontTestBase
82
89
  def test_unfavorite
83
90
  should_work(:unfavorite, DASHBOARD, ["#{DASHBOARD}/unfavorite",
84
91
  nil], :post, POST_HEADERS)
92
+ should_work(:unfavourite, DASHBOARD, ["#{DASHBOARD}/unfavorite",
93
+ nil], :post, POST_HEADERS)
85
94
  should_be_invalid(:unfavorite)
86
95
  end
96
+
97
+ def test_acls
98
+ should_work(:acls, [%w[dash1 dash2]], 'acl?id=dash1&id=dash2')
99
+ end
100
+
101
+ def test_acl_add
102
+ should_work(:acl_add, [DASHBOARD, [U_ACL_1, U_ACL_2], [GRP_ACL]],
103
+ 'acl/add', :post, {}, acl_body(DASHBOARD,
104
+ [U_ACL_1, U_ACL_2],
105
+ [GRP_ACL]))
106
+
107
+ should_work(:acl_add, [DASHBOARD, [U_ACL_1, U_ACL_2]],
108
+ 'acl/add', :post, {}, acl_body(DASHBOARD,
109
+ [U_ACL_1, U_ACL_2]))
110
+ assert_raises(ArgumentError) { wf.acl_add(DASHBOARD, U_ACL_1) }
111
+ assert_raises(ArgumentError) do
112
+ wf.acl_add(DASHBOARD, [U_ACL_1], GRP_ACL)
113
+ end
114
+ end
115
+
116
+ def test_acl_remove
117
+ should_work(:acl_delete, [DASHBOARD, [U_ACL_1, U_ACL_2], [GRP_ACL]],
118
+ 'acl/remove', :post, {}, acl_body(DASHBOARD,
119
+ [U_ACL_1, U_ACL_2],
120
+ [GRP_ACL]))
121
+
122
+ should_work(:acl_delete, [DASHBOARD, [U_ACL_1, U_ACL_2]],
123
+ 'acl/remove', :post, {}, acl_body(DASHBOARD,
124
+ [U_ACL_1, U_ACL_2]))
125
+ assert_raises(ArgumentError) { wf.acl_delete(DASHBOARD, U_ACL_1) }
126
+ end
127
+
128
+ def test_acl_set
129
+ should_work(:acl_set, [DASHBOARD, [U_ACL_1, U_ACL_2], [GRP_ACL]],
130
+ 'acl/set', :put, {}, acl_body(DASHBOARD,
131
+ [U_ACL_1, U_ACL_2],
132
+ [GRP_ACL]))
133
+
134
+ should_work(:acl_set, [DASHBOARD, [U_ACL_1, U_ACL_2]],
135
+ 'acl/set', :put, {}, acl_body(DASHBOARD,
136
+ [U_ACL_1, U_ACL_2]))
137
+ assert_raises(ArgumentError) { wf.acl_set(DASHBOARD, U_ACL_1) }
138
+ end
139
+
140
+ def acl_body(id, view = [], modify = [])
141
+ [{ entityId: id, viewAcl: view, modifyAcl: modify }].to_json
142
+ end
87
143
  end
@@ -68,5 +68,8 @@ class WavefrontSearchTest < WavefrontTestBase
68
68
 
69
69
  assert_equal({ limit: 10, offset: 0 }, r3)
70
70
  assert_equal(0, r3[:offset])
71
+
72
+ r4 = wf.body(q, sort_field: :mykey)
73
+ assert_equal({ field: :mykey, ascending: true }, r4[:sort])
71
74
  end
72
75
  end
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ SETTINGS_BODY = { showQuerybuilderByDefault: true,
6
+ hideTSWhenQuerybuilderShown: true }.freeze
7
+
8
+ # Unit tests for Settings class
9
+ #
10
+ class WavefrontSettingsTest < WavefrontTestBase
11
+ def api_base
12
+ 'customer'
13
+ end
14
+
15
+ def test_permissions
16
+ should_work(:permissions, nil, 'permissions')
17
+ end
18
+
19
+ def test_preferences
20
+ should_work(:preferences, nil, 'preferences')
21
+ end
22
+
23
+ def test_update_preferences
24
+ should_work(:update_preferences, SETTINGS_BODY, 'preferences',
25
+ :post, JSON_POST_HEADERS, SETTINGS_BODY.to_json)
26
+ end
27
+
28
+ def test_default_user_groups
29
+ should_work(:default_user_groups, nil, 'preferences/defaultUserGroups')
30
+ end
31
+ end
@@ -2,7 +2,6 @@ require 'pathname'
2
2
  require 'date'
3
3
  require_relative 'lib/wavefront-sdk/defs/version'
4
4
 
5
- # rubocop:disable Metrics/BlockLength:
6
5
  Gem::Specification.new do |gem|
7
6
  gem.name = 'wavefront-sdk'
8
7
  gem.version = WF_SDK_VERSION
@@ -12,7 +11,7 @@ Gem::Specification.new do |gem|
12
11
  gem.description = 'SDK for Wavefront (wavefront.com) API v2 '
13
12
 
14
13
  gem.authors = ['Robert Fisher']
15
- gem.email = 'slackboy@gmail.com'
14
+ gem.email = 'rob@sysdef.xyz'
16
15
  gem.homepage = 'https://github.com/snltd/wavefront-sdk'
17
16
  gem.license = 'BSD-2-Clause'
18
17
 
@@ -22,11 +21,10 @@ Gem::Specification.new do |gem|
22
21
  gem.bindir = 'bin'
23
22
 
24
23
  gem.add_dependency 'addressable', '~> 2.4'
25
- gem.add_dependency 'faraday', '~> 0.14.0'
24
+ gem.add_dependency 'faraday', '~> 0.15.4'
26
25
  gem.add_dependency 'inifile', '~> 3.0'
27
26
  gem.add_dependency 'map', '~> 6.6'
28
27
 
29
- gem.add_development_dependency 'bundler', '~> 1.17'
30
28
  gem.add_development_dependency 'minitest', '~> 5.11'
31
29
  gem.add_development_dependency 'rake', '~> 12.0'
32
30
  gem.add_development_dependency 'rubocop', '~> 0.54.0'
@@ -35,6 +33,5 @@ Gem::Specification.new do |gem|
35
33
  gem.add_development_dependency 'webmock', '~> 3.0'
36
34
  gem.add_development_dependency 'yard', '~> 0.9.5'
37
35
 
38
- gem.required_ruby_version = Gem::Requirement.new('>= 2.2.0')
36
+ gem.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
39
37
  end
40
- # rubocop:enable Metrics/BlockLength:
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: 2.5.1
4
+ version: 3.0.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: 2019-03-07 00:00:00.000000000 Z
11
+ date: 2019-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.14.0
33
+ version: 0.15.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.14.0
40
+ version: 0.15.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: inifile
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '6.6'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.17'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.17'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: minitest
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +165,7 @@ dependencies:
179
165
  - !ruby/object:Gem::Version
180
166
  version: 0.9.5
181
167
  description: 'SDK for Wavefront (wavefront.com) API v2 '
182
- email: slackboy@gmail.com
168
+ email: rob@sysdef.xyz
183
169
  executables: []
184
170
  extensions: []
185
171
  extra_rdoc_files: []
@@ -224,6 +210,7 @@ files:
224
210
  - lib/wavefront-sdk/report.rb
225
211
  - lib/wavefront-sdk/savedsearch.rb
226
212
  - lib/wavefront-sdk/search.rb
213
+ - lib/wavefront-sdk/settings.rb
227
214
  - lib/wavefront-sdk/source.rb
228
215
  - lib/wavefront-sdk/stdlib/array.rb
229
216
  - lib/wavefront-sdk/stdlib/hash.rb
@@ -274,6 +261,7 @@ files:
274
261
  - spec/wavefront-sdk/resources/test2.conf
275
262
  - spec/wavefront-sdk/savedsearch_spec.rb
276
263
  - spec/wavefront-sdk/search_spec.rb
264
+ - spec/wavefront-sdk/settings_spec.rb
277
265
  - spec/wavefront-sdk/source_spec.rb
278
266
  - spec/wavefront-sdk/stdlib/array_spec.rb
279
267
  - spec/wavefront-sdk/stdlib/hash_spec.rb
@@ -304,7 +292,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
304
292
  requirements:
305
293
  - - ">="
306
294
  - !ruby/object:Gem::Version
307
- version: 2.2.0
295
+ version: 2.3.0
308
296
  required_rubygems_version: !ruby/object:Gem::Requirement
309
297
  requirements:
310
298
  - - ">="
@@ -346,6 +334,7 @@ test_files:
346
334
  - spec/wavefront-sdk/resources/test2.conf
347
335
  - spec/wavefront-sdk/savedsearch_spec.rb
348
336
  - spec/wavefront-sdk/search_spec.rb
337
+ - spec/wavefront-sdk/settings_spec.rb
349
338
  - spec/wavefront-sdk/source_spec.rb
350
339
  - spec/wavefront-sdk/stdlib/array_spec.rb
351
340
  - spec/wavefront-sdk/stdlib/hash_spec.rb