dnsimple 6.0.0 → 7.0.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
  SHA256:
3
- metadata.gz: a4f667eba7dc3bc3e7718657059de2cc752f966d748b0698326feefad1f93111
4
- data.tar.gz: 82eabdcd7a27df808db076d4d65bfb196343c3aa607e42d61ba1ff8f7b328349
3
+ metadata.gz: 2cf8d057d98c78bf3b8584e15b561624dfb35f1264f80d0c5861e970053b18f3
4
+ data.tar.gz: acc7e6f33680ba4195243b474dca108e566c953ed2474e36fd9631c9f6b1f2fc
5
5
  SHA512:
6
- metadata.gz: 8ee87e28d8fd2fef38a9282905146831321e9a443c08216e2399fc577ba957da835df45d8a31052a4c8a12c7db2373ad8b96ed0b7a86072de20b6c2772b3e56c
7
- data.tar.gz: dae840d8c7d5f3c86af8f959ba07b5310f6e852e351b84c42166621e181de41604fb1d43be6ffe1c651002840f37dcc3b16eebadf6c9beed90d1c46e9f693aa5
6
+ metadata.gz: 504d15c395fcbbb08a4c351912f9cb47e0dac082ae9da5ef22161bc5bc6a5fc6e1f46466ab7c482385c996a558a10dad4d12fc2cd1eac130c417f6c21e70cfd0
7
+ data.tar.gz: 3ebc372cd78a2bc5d4cf3bdcab9168e572856fe0614da843949c5a58a1508399281b25a621e399280b1e4464a72ea5099d9e88e227aec7a564213297d81a6720
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: /
5
+ schedule:
6
+ interval: daily
7
+ time: '12:00'
8
+ open-pull-requests-limit: 10
9
+ labels:
10
+ - task
11
+ - dependencies
12
+ - backlog-dependencies
data/.rubocop.yml CHANGED
@@ -8,21 +8,12 @@ require:
8
8
  - rubocop-rspec
9
9
 
10
10
  AllCops:
11
+ TargetRubyVersion: 2.6
11
12
  Exclude:
12
13
  - '*.gemspec'
13
14
  - 'Rakefile'
15
+ - 'vendor/**/*'
14
16
 
15
- # [codesmell]
16
- # It's irrelevant here, but it could be a code smell.
17
- # Hence keep it disabled, but don't include it in the DNSimple suite.
18
- Lint/Loop:
19
- Enabled: false
20
-
21
- # It doesn't seem to work as expected.
22
- Style/IfUnlessModifier:
23
- Enabled: false
24
-
25
- # This rule suggest to use safe navigation (&.) operator which was introduced
26
- # with Ruby 2.3. Because we are supporting Ruby 2.0+ we can't use this operator.
27
- Style/SafeNavigation:
17
+ # This rule conflicts with our specs codebase using Ruby 2.x and 3.x
18
+ Lint/NonDeterministicRequireOrder:
28
19
  Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,49 +1,36 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2021-04-05 15:23:33 UTC using RuboCop version 1.12.1.
3
+ # on 2021-06-01 13:07:05 UTC using RuboCop version 1.16.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 6
10
- # Configuration parameters: Prefixes.
11
- # Prefixes: when, with, without
12
- RSpec/ContextWording:
13
- Exclude:
14
- - 'spec/dnsimple/client/domains_collaborators_spec.rb'
15
- - 'spec/dnsimple/options/list_options_spec.rb'
16
-
17
- # Offense count: 70
18
- # Configuration parameters: Max.
9
+ # Offense count: 71
10
+ # Configuration parameters: CountAsOne.
19
11
  RSpec/ExampleLength:
20
- Enabled: false
12
+ Max: 17
21
13
 
22
14
  # Offense count: 1
23
15
  RSpec/LeakyConstantDeclaration:
24
16
  Exclude:
25
17
  - 'spec/dnsimple/client/client_service_spec.rb'
26
18
 
27
- # Offense count: 21
19
+ # Offense count: 11
28
20
  # Configuration parameters: .
29
21
  # SupportedStyles: have_received, receive
30
22
  RSpec/MessageSpies:
31
23
  EnforcedStyle: receive
32
24
 
33
- # Offense count: 117
25
+ # Offense count: 112
34
26
  RSpec/MultipleExpectations:
35
- Max: 16
27
+ Max: 15
36
28
 
37
- # Offense count: 374
29
+ # Offense count: 375
38
30
  # Configuration parameters: IgnoreSharedExamples.
39
31
  RSpec/NamedSubject:
40
32
  Enabled: false
41
33
 
42
- # Offense count: 10
43
- RSpec/StubbedMock:
44
- Exclude:
45
- - 'spec/dnsimple/client_spec.rb'
46
-
47
34
  # Offense count: 16
48
35
  RSpec/SubjectStub:
49
36
  Exclude:
@@ -60,13 +47,7 @@ RSpec/SubjectStub:
60
47
  - 'spec/dnsimple/client/zones_spec.rb'
61
48
  - 'spec/dnsimple/client_spec.rb'
62
49
 
63
- # Offense count: 5
64
- # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
65
- RSpec/VerifiedDoubles:
66
- Exclude:
67
- - 'spec/dnsimple/client_spec.rb'
68
-
69
- # Offense count: 39
50
+ # Offense count: 37
70
51
  # Configuration parameters: AllowedConstants.
71
52
  Style/Documentation:
72
53
  Enabled: false
data/.travis.yml CHANGED
@@ -1,16 +1,20 @@
1
+ dist: focal
2
+
1
3
  language: ruby
2
4
 
3
5
  rvm:
4
- - 2.4
5
- - 2.5
6
6
  - 2.6
7
7
  - 2.7
8
8
  - 3.0
9
9
  - ruby-head
10
+ - truffleruby-head
11
+
12
+ cache: bundler
10
13
 
11
- matrix:
14
+ jobs:
12
15
  allow_failures:
13
16
  - rvm: ruby-head
17
+ - rvm: truffleruby-head
14
18
 
15
19
  env:
16
20
  - COVERALL=1
data/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
4
4
 
5
5
  ## main
6
6
 
7
+ ## 0.7.0
8
+
9
+ - CHANGED: Minimum Ruby version is now 2.6
10
+ - CHANGED: Deprecates `registrar.getDomainPremiumPrice` in favour of `registrar.getDomainPrices`
11
+
7
12
  ## 6.0.0
8
13
 
9
14
  - NEW: Added `registrar.get_domain_prices` to retrieve whether a domain is premium and the prices to register, transfer, and renew. (dnsimple/dnsimple-ruby#230)
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ source 'https://rubygems.org'
5
5
  gemspec
6
6
 
7
7
  gem 'coveralls', require: false
8
- gem 'rubocop', '1.12.1', require: false
8
+ gem 'rubocop', '1.16.0', require: false
9
9
  gem 'rubocop-performance', require: false
10
10
  gem 'rubocop-rake', require: false
11
11
  gem 'rubocop-rspec', require: false
data/dnsimple.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.summary = 'The DNSimple API client for Ruby'
12
12
  s.description = 'The DNSimple API client for Ruby.'
13
13
 
14
- s.required_ruby_version = ">= 2.4"
14
+ s.required_ruby_version = ">= 2.6"
15
15
 
16
16
  s.require_paths = ['lib']
17
17
  s.files = `git ls-files`.split("\n")
@@ -98,14 +98,15 @@ module Dnsimple
98
98
  options = args.pop
99
99
  response = nil
100
100
 
101
- begin
101
+ loop do
102
102
  current_page += 1
103
103
  query = Extra.deep_merge(options, query: { page: current_page, per_page: 100 })
104
104
 
105
105
  response = send(method, *(args + [query]))
106
106
  total_pages ||= response.total_pages
107
107
  collection.concat(response.data)
108
- end while current_page < total_pages
108
+ break unless current_page < total_pages
109
+ end
109
110
 
110
111
  CollectionResponse.new(response.http_response, collection)
111
112
  end
@@ -42,7 +42,10 @@ module Dnsimple
42
42
  # @return [Struct::DomainPremiumPrice]
43
43
  #
44
44
  # @raise [RequestError] When the request fails.
45
+ #
46
+ # @deprecated Use {#get_domain_prices} instead of this one as it will soon be removed from the API.
45
47
  def domain_premium_price(account_id, domain_name, options = {})
48
+ Dnsimple.deprecate("Use {#get_domain_prices} instead of this one as it will soon be removed from the API.")
46
49
  endpoint = Client.versioned("/%s/registrar/domains/%s/premium_price" % [account_id, domain_name])
47
50
  options[:query] = { action: options.delete(:action) } if options.key?(:action)
48
51
  response = client.get(endpoint, options)
@@ -18,7 +18,7 @@ module Dnsimple
18
18
 
19
19
  def message_from(http_response)
20
20
  content_type = http_response.headers["Content-Type"]
21
- if content_type && content_type.start_with?("application/json")
21
+ if content_type&.start_with?("application/json")
22
22
  http_response.parsed_response["message"]
23
23
  else
24
24
  net_http_response = http_response.response
@@ -55,7 +55,7 @@ module Dnsimple
55
55
  # @raise [ArgumentError]
56
56
  def self.validate_mandatory_attributes(attributes, required)
57
57
  required.each do |name|
58
- attributes && attributes.key?(name) or raise(ArgumentError, ":#{name} is required")
58
+ attributes&.key?(name) or raise(ArgumentError, ":#{name} is required")
59
59
  end
60
60
  end
61
61
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dnsimple
4
- VERSION = "6.0.0"
4
+ VERSION = "7.0.0"
5
5
  end
@@ -63,7 +63,7 @@ describe Dnsimple::Client, ".domains" do
63
63
  let(:account_id) { 1010 }
64
64
  let(:domain_id) { "example.com" }
65
65
 
66
- context "invite user already registered on DNSimple" do
66
+ context "when inviting a user already registered on DNSimple" do
67
67
  before do
68
68
  stub_request(:post, %r{/v2/#{account_id}/domains/#{domain_id}/collaborators$})
69
69
  .to_return(read_http_fixture("addCollaborator/success.http"))
@@ -93,7 +93,7 @@ describe Dnsimple::Client, ".domains" do
93
93
  end
94
94
  end
95
95
 
96
- context "invite not registered on DNSimple" do
96
+ context "when inviting a user not registered on DNSimple" do
97
97
  before do
98
98
  stub_request(:post, %r{/v2/#{account_id}/domains/#{domain_id}/collaborators$})
99
99
  .to_return(read_http_fixture("addCollaborator/invite-success.http"))
@@ -49,35 +49,35 @@ describe Dnsimple::Client do
49
49
 
50
50
  describe "#get" do
51
51
  it "delegates to #request" do
52
- expect(subject).to receive(:execute).with(:get, "path", nil, foo: "bar").and_return(:returned)
52
+ allow(subject).to receive(:execute).with(:get, "path", nil, foo: "bar").and_return(:returned)
53
53
  expect(subject.get("path", foo: "bar")).to eq(:returned)
54
54
  end
55
55
  end
56
56
 
57
57
  describe "#post" do
58
58
  it "delegates to #request" do
59
- expect(subject).to receive(:execute).with(:post, "path", { foo: "bar" }, {}).and_return(:returned)
59
+ allow(subject).to receive(:execute).with(:post, "path", { foo: "bar" }, {}).and_return(:returned)
60
60
  expect(subject.post("path", foo: "bar")).to eq(:returned)
61
61
  end
62
62
  end
63
63
 
64
64
  describe "#put" do
65
65
  it "delegates to #request" do
66
- expect(subject).to receive(:execute).with(:put, "path", { foo: "bar" }, {}).and_return(:returned)
66
+ allow(subject).to receive(:execute).with(:put, "path", { foo: "bar" }, {}).and_return(:returned)
67
67
  expect(subject.put("path", foo: "bar")).to eq(:returned)
68
68
  end
69
69
  end
70
70
 
71
71
  describe "#patch" do
72
72
  it "delegates to #request" do
73
- expect(subject).to receive(:execute).with(:patch, "path", { foo: "bar" }, {}).and_return(:returned)
73
+ allow(subject).to receive(:execute).with(:patch, "path", { foo: "bar" }, {}).and_return(:returned)
74
74
  expect(subject.patch("path", foo: "bar")).to eq(:returned)
75
75
  end
76
76
  end
77
77
 
78
78
  describe "#delete" do
79
79
  it "delegates to #request" do
80
- expect(subject).to receive(:execute).with(:delete, "path", { foo: "bar" }, {}).and_return(:returned)
80
+ allow(subject).to receive(:execute).with(:delete, "path", { foo: "bar" }, {}).and_return(:returned)
81
81
  expect(subject.delete("path", foo: "bar")).to eq(:returned)
82
82
  end
83
83
  end
@@ -126,20 +126,20 @@ describe Dnsimple::Client do
126
126
  it "delegates to HTTParty" do
127
127
  stub_request(:get, %r{/foo})
128
128
 
129
- expect(HTTParty).to receive(:get)
129
+ allow(HTTParty).to receive(:get)
130
130
  .with(
131
131
  "#{subject.base_url}foo",
132
132
  format: :json,
133
133
  basic_auth: { username: "user", password: "pass" },
134
134
  headers: { 'Accept' => 'application/json', 'User-Agent' => Dnsimple::Default::USER_AGENT }
135
135
  )
136
- .and_return(double('response', code: 200))
136
+ .and_return(instance_double('response', code: 200))
137
137
 
138
138
  subject.request(:get, 'foo')
139
139
  end
140
140
 
141
141
  it "properly extracts processes options and encodes data" do
142
- expect(HTTParty).to receive(:put)
142
+ allow(HTTParty).to receive(:put)
143
143
  .with(
144
144
  "#{subject.base_url}foo",
145
145
  format: :json,
@@ -148,13 +148,13 @@ describe Dnsimple::Client do
148
148
  basic_auth: { username: "user", password: "pass" },
149
149
  headers: { 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'User-Agent' => Dnsimple::Default::USER_AGENT, "Custom" => "Header" }
150
150
  )
151
- .and_return(double('response', code: 200))
151
+ .and_return(instance_double('response', code: 200))
152
152
 
153
153
  subject.request(:put, 'foo', { something: "else" }, { query: { foo: "bar" }, headers: { "Custom" => "Header" } })
154
154
  end
155
155
 
156
156
  it "handles non application/json content types" do
157
- expect(HTTParty).to receive(:post)
157
+ allow(HTTParty).to receive(:post)
158
158
  .with(
159
159
  "#{subject.base_url}foo",
160
160
  format: :json,
@@ -162,13 +162,13 @@ describe Dnsimple::Client do
162
162
  basic_auth: { username: "user", password: "pass" },
163
163
  headers: { 'Accept' => 'application/json', 'Content-Type' => 'application/x-www-form-urlencoded', 'User-Agent' => Dnsimple::Default::USER_AGENT }
164
164
  )
165
- .and_return(double('response', code: 200))
165
+ .and_return(instance_double('response', code: 200))
166
166
 
167
167
  subject.request(:post, 'foo', { something: "else" }, { headers: { "Content-Type" => "application/x-www-form-urlencoded" } })
168
168
  end
169
169
 
170
170
  it "includes options for proxy support" do
171
- expect(HTTParty).to receive(:get)
171
+ allow(HTTParty).to receive(:get)
172
172
  .with(
173
173
  "#{subject.base_url}test",
174
174
  format: :json,
@@ -176,20 +176,20 @@ describe Dnsimple::Client do
176
176
  http_proxyport: "4321",
177
177
  headers: { 'Accept' => 'application/json', 'User-Agent' => Dnsimple::Default::USER_AGENT }
178
178
  )
179
- .and_return(double('response', code: 200))
179
+ .and_return(instance_double('response', code: 200))
180
180
 
181
181
  subject = described_class.new(proxy: "example-proxy.com:4321")
182
182
  subject.request(:get, "test", nil, {})
183
183
  end
184
184
 
185
185
  it "supports custom user agent" do
186
- expect(HTTParty).to receive(:get)
186
+ allow(HTTParty).to receive(:get)
187
187
  .with(
188
188
  "#{subject.base_url}test",
189
189
  format: :json,
190
190
  headers: hash_including("User-Agent" => "customAgent #{Dnsimple::Default::USER_AGENT}")
191
191
  )
192
- .and_return(double("response", code: 200))
192
+ .and_return(instance_double("response", code: 200))
193
193
 
194
194
  subject = described_class.new(user_agent: "customAgent")
195
195
  subject.request(:get, "test", nil)
@@ -14,14 +14,14 @@ RSpec.describe Dnsimple::Options::ListOptions do
14
14
  expect(options.to_h).to eq({})
15
15
  end
16
16
 
17
- context 'query' do
17
+ describe 'query' do
18
18
  it 'adds "query" key if given options are filled' do
19
19
  options = described_class.new(a: 1)
20
20
  expect(options.to_h).to have_key(:query)
21
21
  end
22
22
  end
23
23
 
24
- context 'pagination' do
24
+ describe 'pagination' do
25
25
  it 'adds "page" to "query"' do
26
26
  raw = { page: '23' }
27
27
  expected = { query: raw }
@@ -47,7 +47,7 @@ RSpec.describe Dnsimple::Options::ListOptions do
47
47
  end
48
48
  end
49
49
 
50
- context 'sorting' do
50
+ describe 'sorting' do
51
51
  it 'adds sorting policy to "query"' do
52
52
  raw = { sort: 'name:desc' }
53
53
  expected = { query: raw }
@@ -73,7 +73,7 @@ RSpec.describe Dnsimple::Options::ListOptions do
73
73
  end
74
74
  end
75
75
 
76
- context 'filtering' do
76
+ describe 'filtering' do
77
77
  it 'adds filtering policy to "query"' do
78
78
  raw = { filter: { name_like: 'example' } }
79
79
  expected = { query: raw.fetch(:filter) }
data/spec/spec_helper.rb CHANGED
@@ -14,4 +14,4 @@ unless defined?(SPEC_ROOT)
14
14
  SPEC_ROOT = File.expand_path(__dir__)
15
15
  end
16
16
 
17
- Dir[File.join(SPEC_ROOT, "support/**/*.rb")].sort.each { |f| require f }
17
+ Dir[File.join(SPEC_ROOT, "support/**/*.rb")].each { |f| require f }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsimple
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DNSimple
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-20 00:00:00.000000000 Z
11
+ date: 2021-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -88,7 +88,7 @@ extensions: []
88
88
  extra_rdoc_files:
89
89
  - LICENSE.txt
90
90
  files:
91
- - ".dependabot/config.yml"
91
+ - ".github/dependabot.yml"
92
92
  - ".gitignore"
93
93
  - ".rspec"
94
94
  - ".rubocop.yml"
@@ -356,7 +356,7 @@ files:
356
356
  homepage: https://github.com/dnsimple/dnsimple-ruby
357
357
  licenses: []
358
358
  metadata: {}
359
- post_install_message:
359
+ post_install_message:
360
360
  rdoc_options: []
361
361
  require_paths:
362
362
  - lib
@@ -364,15 +364,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
364
364
  requirements:
365
365
  - - ">="
366
366
  - !ruby/object:Gem::Version
367
- version: '2.4'
367
+ version: '2.6'
368
368
  required_rubygems_version: !ruby/object:Gem::Requirement
369
369
  requirements:
370
370
  - - ">="
371
371
  - !ruby/object:Gem::Version
372
372
  version: '0'
373
373
  requirements: []
374
- rubygems_version: 3.2.3
375
- signing_key:
374
+ rubygems_version: 3.1.4
375
+ signing_key:
376
376
  specification_version: 4
377
377
  summary: The DNSimple API client for Ruby
378
378
  test_files:
@@ -1,9 +0,0 @@
1
- version: 1
2
- update_configs:
3
- - package_manager: "ruby:bundler"
4
- directory: "/"
5
- update_schedule: "daily"
6
- default_labels:
7
- - "task"
8
- - "dependencies"
9
- - "backlog-dependencies"