dnsimple 5.2.0 → 6.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 +4 -4
- data/.gitignore +3 -0
- data/.rubocop.yml +4 -1
- data/.rubocop_dnsimple.yml +1 -38
- data/.rubocop_todo.yml +63 -5
- data/.travis.yml +7 -3
- data/CHANGELOG.md +10 -0
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +3 -1
- data/LICENSE.txt +1 -1
- data/README.md +4 -4
- data/lib/dnsimple/client.rb +11 -3
- data/lib/dnsimple/client/domains.rb +0 -18
- data/lib/dnsimple/client/registrar.rb +20 -0
- data/lib/dnsimple/client/registrar_whois_privacy.rb +1 -1
- data/lib/dnsimple/default.rb +1 -1
- data/lib/dnsimple/extra.rb +1 -1
- data/lib/dnsimple/response.rb +1 -3
- data/lib/dnsimple/struct.rb +1 -0
- data/lib/dnsimple/struct/certificate.rb +0 -19
- data/lib/dnsimple/struct/domain.rb +0 -20
- data/lib/dnsimple/struct/domain_price.rb +24 -0
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/certificates_spec.rb +0 -1
- data/spec/dnsimple/client/client_service_spec.rb +1 -1
- data/spec/dnsimple/client/contacts_spec.rb +2 -2
- data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +1 -1
- data/spec/dnsimple/client/domains_email_forwards_spec.rb +8 -8
- data/spec/dnsimple/client/domains_pushes_spec.rb +2 -2
- data/spec/dnsimple/client/domains_spec.rb +1 -29
- data/spec/dnsimple/client/registrar_delegation_spec.rb +2 -2
- data/spec/dnsimple/client/registrar_spec.rb +46 -3
- data/spec/dnsimple/client/services_domains_spec.rb +2 -4
- data/spec/dnsimple/client/services_spec.rb +1 -3
- data/spec/dnsimple/client/templates_records_spec.rb +1 -1
- data/spec/dnsimple/client/templates_spec.rb +2 -2
- data/spec/dnsimple/client/webhooks_spec.rb +1 -1
- data/spec/dnsimple/client/zones_records_spec.rb +2 -2
- data/spec/dnsimple/client/zones_spec.rb +1 -1
- data/spec/fixtures.http/accounts/success-account.http +0 -1
- data/spec/fixtures.http/accounts/success-user.http +0 -1
- data/spec/fixtures.http/addCollaborator/invite-success.http +0 -1
- data/spec/fixtures.http/addCollaborator/success.http +0 -1
- data/spec/fixtures.http/appliedServices/success.http +0 -1
- data/spec/fixtures.http/cancelDomainTransfer/success.http +0 -1
- data/spec/fixtures.http/changeDomainDelegation/success.http +0 -1
- data/spec/fixtures.http/changeDomainDelegationToVanity/success.http +0 -1
- data/spec/fixtures.http/checkDomain/success.http +0 -1
- data/spec/fixtures.http/checkDomainPremiumPrice/error_400_not_a_premium_domain.http +18 -0
- data/spec/fixtures.http/checkDomainPremiumPrice/error_400_tld_not_supported.http +18 -0
- data/spec/fixtures.http/checkDomainPremiumPrice/success.http +20 -0
- data/spec/fixtures.http/checkZoneDistribution/error.http +0 -1
- data/spec/fixtures.http/checkZoneDistribution/failure.http +0 -1
- data/spec/fixtures.http/checkZoneDistribution/success.http +0 -1
- data/spec/fixtures.http/checkZoneRecordDistribution/error.http +0 -1
- data/spec/fixtures.http/checkZoneRecordDistribution/failure.http +0 -1
- data/spec/fixtures.http/checkZoneRecordDistribution/success.http +0 -1
- data/spec/fixtures.http/createContact/created.http +0 -1
- data/spec/fixtures.http/createDelegationSignerRecord/created.http +0 -1
- data/spec/fixtures.http/createDelegationSignerRecord/validation-error.http +0 -1
- data/spec/fixtures.http/createDomain/created.http +0 -1
- data/spec/fixtures.http/createEmailForward/created.http +21 -17
- data/spec/fixtures.http/createPrimaryServer/created.http +21 -0
- data/spec/fixtures.http/createSecondaryZone/created.http +21 -0
- data/spec/fixtures.http/createTemplate/created.http +0 -1
- data/spec/fixtures.http/createTemplateRecord/created.http +0 -1
- data/spec/fixtures.http/createWebhook/created.http +0 -1
- data/spec/fixtures.http/createZoneRecord/created-apex.http +0 -1
- data/spec/fixtures.http/createZoneRecord/created.http +0 -1
- data/spec/fixtures.http/deleteContact/error-contact-in-use.http +18 -0
- data/spec/fixtures.http/deleteEmailForward/success.http +12 -7
- data/spec/fixtures.http/disableDnssec/not-enabled.http +0 -1
- data/spec/fixtures.http/disableWhoisPrivacy/success.http +0 -1
- data/spec/fixtures.http/downloadCertificate/success.http +0 -1
- data/spec/fixtures.http/enableDnssec/success.http +0 -1
- data/spec/fixtures.http/enableVanityNameServers/success.http +0 -1
- data/spec/fixtures.http/enableWhoisPrivacy/created.http +0 -1
- data/spec/fixtures.http/enableWhoisPrivacy/success.http +0 -1
- data/spec/fixtures.http/getCertificate/success.http +0 -1
- data/spec/fixtures.http/getCertificatePrivateKey/success.http +0 -1
- data/spec/fixtures.http/getContact/success.http +0 -1
- data/spec/fixtures.http/getDelegationSignerRecord/success.http +0 -1
- data/spec/fixtures.http/getDnssec/success.http +0 -1
- data/spec/fixtures.http/getDomain/success.http +0 -1
- data/spec/fixtures.http/getDomainDelegation/success-empty.http +0 -1
- data/spec/fixtures.http/getDomainDelegation/success.http +0 -1
- data/spec/fixtures.http/getDomainPremiumPrice/failure.http +0 -1
- data/spec/fixtures.http/getDomainPremiumPrice/success.http +0 -1
- data/spec/fixtures.http/getDomainPrices/failure.http +19 -0
- data/spec/fixtures.http/getDomainPrices/success.http +21 -0
- data/spec/fixtures.http/getDomainTransfer/success.http +0 -1
- data/spec/fixtures.http/getEmailForward/success.http +14 -10
- data/spec/fixtures.http/getPrimaryServer/success.http +21 -0
- data/spec/fixtures.http/getService/success.http +0 -1
- data/spec/fixtures.http/getTemplate/success.http +0 -1
- data/spec/fixtures.http/getTemplateRecord/success.http +0 -1
- data/spec/fixtures.http/getTld/success.http +0 -1
- data/spec/fixtures.http/getTldExtendedAttributes/success-attributes.http +0 -1
- data/spec/fixtures.http/getTldExtendedAttributes/success-noattributes.http +0 -1
- data/spec/fixtures.http/getTldExtendedAttributes/success.http +0 -1
- data/spec/fixtures.http/getWebhook/success.http +0 -1
- data/spec/fixtures.http/getWhoisPrivacy/success.http +0 -1
- data/spec/fixtures.http/getZone/success.http +0 -1
- data/spec/fixtures.http/getZoneFile/success.http +0 -1
- data/spec/fixtures.http/getZoneRecord/success.http +0 -1
- data/spec/fixtures.http/initiatePush/success.http +0 -1
- data/spec/fixtures.http/issueLetsencryptCertificate/success.http +0 -1
- data/spec/fixtures.http/issueRenewalLetsencryptCertificate/success.http +0 -1
- data/spec/fixtures.http/linkPrimaryServer/success.http +21 -0
- data/spec/fixtures.http/listAccounts/success-account.http +0 -1
- data/spec/fixtures.http/listAccounts/success-user.http +0 -1
- data/spec/fixtures.http/listCertificates/success.http +0 -1
- data/spec/fixtures.http/listCollaborators/success.http +0 -1
- data/spec/fixtures.http/listContacts/success.http +0 -1
- data/spec/fixtures.http/listDelegationSignerRecords/success.http +0 -1
- data/spec/fixtures.http/listDomains/success.http +0 -1
- data/spec/fixtures.http/listEmailForwards/success.http +0 -1
- data/spec/fixtures.http/listPrimaryServers/success.http +21 -0
- data/spec/fixtures.http/listPushes/success.http +0 -1
- data/spec/fixtures.http/listServices/success.http +0 -1
- data/spec/fixtures.http/listTemplateRecords/success.http +0 -1
- data/spec/fixtures.http/listTemplates/success.http +0 -1
- data/spec/fixtures.http/listTlds/success.http +0 -1
- data/spec/fixtures.http/listWebhooks/success.http +0 -1
- data/spec/fixtures.http/listZoneRecords/success.http +0 -1
- data/spec/fixtures.http/listZones/success.http +0 -1
- data/spec/fixtures.http/method-not-allowed.http +0 -1
- data/spec/fixtures.http/notfound-certificate.http +0 -1
- data/spec/fixtures.http/notfound-collaborator.http +0 -1
- data/spec/fixtures.http/notfound-contact.http +0 -1
- data/spec/fixtures.http/notfound-delegationsignerrecord.http +0 -1
- data/spec/fixtures.http/notfound-domain.http +0 -1
- data/spec/fixtures.http/notfound-domainpush.http +0 -1
- data/spec/fixtures.http/notfound-emailforward.http +0 -1
- data/spec/fixtures.http/notfound-record.http +0 -1
- data/spec/fixtures.http/notfound-template.http +0 -1
- data/spec/fixtures.http/notfound-webhook.http +0 -1
- data/spec/fixtures.http/notfound-whoisprivacy.http +0 -1
- data/spec/fixtures.http/notfound-zone.http +0 -1
- data/spec/fixtures.http/oauthAccessToken/error-invalid-request.http +0 -1
- data/spec/fixtures.http/oauthAccessToken/success.http +0 -1
- data/spec/fixtures.http/pages-1of3.http +0 -1
- data/spec/fixtures.http/pages-2of3.http +0 -1
- data/spec/fixtures.http/pages-3of3.http +0 -1
- data/spec/fixtures.http/purchaseLetsencryptCertificate/success.http +0 -1
- data/spec/fixtures.http/purchaseRenewalLetsencryptCertificate/success.http +0 -1
- data/spec/fixtures.http/registerDomain/success.http +0 -1
- data/spec/fixtures.http/renewDomain/error-tooearly.http +0 -1
- data/spec/fixtures.http/renewDomain/success.http +0 -1
- data/spec/fixtures.http/renewWhoisPrivacy/success.http +0 -1
- data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-duplicated-order.http +0 -1
- data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-not-found.http +0 -1
- data/spec/fixtures.http/response.http +0 -1
- data/spec/fixtures.http/transferDomain/error-indnsimple.http +0 -1
- data/spec/fixtures.http/transferDomain/error-missing-authcode.http +0 -1
- data/spec/fixtures.http/transferDomain/success.http +0 -1
- data/spec/fixtures.http/unlinkPrimaryServer/success.http +21 -0
- data/spec/fixtures.http/updateContact/success.http +0 -1
- data/spec/fixtures.http/updateTemplate/success.http +0 -1
- data/spec/fixtures.http/updateZoneRecord/success.http +0 -1
- data/spec/fixtures.http/validation-error.http +0 -1
- data/spec/fixtures.http/whoami/success-account.http +0 -1
- data/spec/fixtures.http/whoami/success-user.http +0 -1
- data/spec/fixtures.http/whoami/success.http +0 -1
- data/spec/spec_helper.rb +1 -1
- metadata +31 -8
- data/spec/fixtures.http/resetDomainToken/success.http +0 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a4f667eba7dc3bc3e7718657059de2cc752f966d748b0698326feefad1f93111
|
|
4
|
+
data.tar.gz: 82eabdcd7a27df808db076d4d65bfb196343c3aa607e42d61ba1ff8f7b328349
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8ee87e28d8fd2fef38a9282905146831321e9a443c08216e2399fc577ba957da835df45d8a31052a4c8a12c7db2373ad8b96ed0b7a86072de20b6c2772b3e56c
|
|
7
|
+
data.tar.gz: dae840d8c7d5f3c86af8f959ba07b5310f6e852e351b84c42166621e181de41604fb1d43be6ffe1c651002840f37dcc3b16eebadf6c9beed90d1c46e9f693aa5
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/.rubocop_dnsimple.yml
CHANGED
|
@@ -8,6 +8,7 @@ AllCops:
|
|
|
8
8
|
Exclude:
|
|
9
9
|
# Exclude .gemspec files because they are generally auto-generated
|
|
10
10
|
- '*.gemspec'
|
|
11
|
+
NewCops: enable
|
|
11
12
|
|
|
12
13
|
# In most cases, Gems are sorted alphabetically.
|
|
13
14
|
# However, in some few cases the order is relevant due to dependencies.
|
|
@@ -377,41 +378,3 @@ Layout/MultilineOperationIndentation:
|
|
|
377
378
|
#
|
|
378
379
|
Layout/SpaceInsidePercentLiteralDelimiters:
|
|
379
380
|
Enabled: false
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
# New cops
|
|
383
|
-
# We'll remove them once they become defaults.
|
|
384
|
-
# See https://docs.rubocop.org/en/latest/versioning/
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
Layout/SpaceAroundMethodCallOperator:
|
|
388
|
-
Enabled: true
|
|
389
|
-
|
|
390
|
-
Lint/RaiseException:
|
|
391
|
-
Enabled: true
|
|
392
|
-
|
|
393
|
-
Lint/StructNewOverride:
|
|
394
|
-
Enabled: true
|
|
395
|
-
|
|
396
|
-
Style/ExponentialNotation:
|
|
397
|
-
Enabled: true
|
|
398
|
-
|
|
399
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
|
400
|
-
Enabled: true
|
|
401
|
-
|
|
402
|
-
Style/SlicingWithRange:
|
|
403
|
-
Enabled: true
|
|
404
|
-
|
|
405
|
-
# Introduced in rubocop 0.84.0
|
|
406
|
-
Lint/DeprecatedOpenSSLConstant:
|
|
407
|
-
Enabled: true
|
|
408
|
-
|
|
409
|
-
# Introduced in rubocop 0.85.0
|
|
410
|
-
Lint/MixedRegexpCaptureTypes:
|
|
411
|
-
Enabled: true
|
|
412
|
-
|
|
413
|
-
Style/RedundantRegexpCharacterClass:
|
|
414
|
-
Enabled: true
|
|
415
|
-
|
|
416
|
-
Style/RedundantRegexpEscape:
|
|
417
|
-
Enabled: true
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,14 +1,72 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2021-04-05 15:23:33 UTC using RuboCop version 1.12.1.
|
|
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
|
-
|
|
10
|
-
|
|
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.
|
|
19
|
+
RSpec/ExampleLength:
|
|
11
20
|
Enabled: false
|
|
21
|
+
|
|
22
|
+
# Offense count: 1
|
|
23
|
+
RSpec/LeakyConstantDeclaration:
|
|
12
24
|
Exclude:
|
|
13
|
-
- 'spec
|
|
14
|
-
|
|
25
|
+
- 'spec/dnsimple/client/client_service_spec.rb'
|
|
26
|
+
|
|
27
|
+
# Offense count: 21
|
|
28
|
+
# Configuration parameters: .
|
|
29
|
+
# SupportedStyles: have_received, receive
|
|
30
|
+
RSpec/MessageSpies:
|
|
31
|
+
EnforcedStyle: receive
|
|
32
|
+
|
|
33
|
+
# Offense count: 117
|
|
34
|
+
RSpec/MultipleExpectations:
|
|
35
|
+
Max: 16
|
|
36
|
+
|
|
37
|
+
# Offense count: 374
|
|
38
|
+
# Configuration parameters: IgnoreSharedExamples.
|
|
39
|
+
RSpec/NamedSubject:
|
|
40
|
+
Enabled: false
|
|
41
|
+
|
|
42
|
+
# Offense count: 10
|
|
43
|
+
RSpec/StubbedMock:
|
|
44
|
+
Exclude:
|
|
45
|
+
- 'spec/dnsimple/client_spec.rb'
|
|
46
|
+
|
|
47
|
+
# Offense count: 16
|
|
48
|
+
RSpec/SubjectStub:
|
|
49
|
+
Exclude:
|
|
50
|
+
- 'spec/dnsimple/client/certificates_spec.rb'
|
|
51
|
+
- 'spec/dnsimple/client/contacts_spec.rb'
|
|
52
|
+
- 'spec/dnsimple/client/domains_delegation_signer_records_spec.rb'
|
|
53
|
+
- 'spec/dnsimple/client/domains_email_forwards_spec.rb'
|
|
54
|
+
- 'spec/dnsimple/client/domains_spec.rb'
|
|
55
|
+
- 'spec/dnsimple/client/services_spec.rb'
|
|
56
|
+
- 'spec/dnsimple/client/templates_records_spec.rb'
|
|
57
|
+
- 'spec/dnsimple/client/templates_spec.rb'
|
|
58
|
+
- 'spec/dnsimple/client/tlds_spec.rb'
|
|
59
|
+
- 'spec/dnsimple/client/zones_records_spec.rb'
|
|
60
|
+
- 'spec/dnsimple/client/zones_spec.rb'
|
|
61
|
+
- 'spec/dnsimple/client_spec.rb'
|
|
62
|
+
|
|
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
|
|
70
|
+
# Configuration parameters: AllowedConstants.
|
|
71
|
+
Style/Documentation:
|
|
72
|
+
Enabled: false
|
data/.travis.yml
CHANGED
|
@@ -5,13 +5,17 @@ rvm:
|
|
|
5
5
|
- 2.5
|
|
6
6
|
- 2.6
|
|
7
7
|
- 2.7
|
|
8
|
+
- 3.0
|
|
9
|
+
- ruby-head
|
|
10
|
+
|
|
11
|
+
matrix:
|
|
12
|
+
allow_failures:
|
|
13
|
+
- rvm: ruby-head
|
|
8
14
|
|
|
9
15
|
env:
|
|
10
16
|
- COVERALL=1
|
|
11
17
|
|
|
12
|
-
before_install:
|
|
13
|
-
- gem install bundler -v 1.17.3
|
|
14
|
-
|
|
15
18
|
notifications:
|
|
19
|
+
email: false
|
|
16
20
|
slack:
|
|
17
21
|
secure: "N9zPR5jnF1TBiqvb3mCV6Wem3TIvqu4tXiob2P66vBMwmj1ewWvyUzNLwAEOCDc3mRfsI50IYXHewckAUpCWW7XEJlT/pv8llMsoiHqArb7SGJyDdy3ZRr35L7glixs/ikod+xhRKXMM3jML/2MgSa+Culzhl42tMUFDk+bBBQU="
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
|
4
4
|
|
|
5
|
+
## main
|
|
6
|
+
|
|
7
|
+
## 6.0.0
|
|
8
|
+
|
|
9
|
+
- 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)
|
|
10
|
+
- REMOVED: `domain.reset_domain_token` endpoint no longer exists and the client method is removed.
|
|
11
|
+
(dnsimple/dnsimple-ruby#231)
|
|
12
|
+
- REMOVED: The deprecated `Domain.expires_on` is removed. (dnsimple/dnsimple-ruby#232)
|
|
13
|
+
- REMOVED: The deprecated `Certificate.expires_on` is removed. (dnsimple/dnsimple-ruby#232)
|
|
14
|
+
|
|
5
15
|
## 5.2.0
|
|
6
16
|
|
|
7
17
|
- CHANGED: `Certificate#expires_on` (date only) is deprecated in favor of `Certificate#expires_at` (timestamp). (dnsimple/dnsimple-ruby#190)
|
data/CONTRIBUTING.md
CHANGED
|
@@ -36,13 +36,13 @@ The following instructions uses `$VERSION` as a placeholder, where `$VERSION` is
|
|
|
36
36
|
|
|
37
37
|
1. Run the test suite and ensure all the tests pass.
|
|
38
38
|
|
|
39
|
-
1. Finalize the `##
|
|
39
|
+
1. Finalize the `## main` section in `CHANGELOG.md` assigning the version.
|
|
40
40
|
|
|
41
41
|
1. Commit and push the changes
|
|
42
42
|
|
|
43
43
|
```shell
|
|
44
44
|
git commit -a -m "Release $VERSION"
|
|
45
|
-
git push origin
|
|
45
|
+
git push origin main
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
1. Wait for CI to complete.
|
data/Gemfile
CHANGED
|
@@ -5,5 +5,7 @@ source 'https://rubygems.org'
|
|
|
5
5
|
gemspec
|
|
6
6
|
|
|
7
7
|
gem 'coveralls', require: false
|
|
8
|
-
gem 'rubocop', '
|
|
8
|
+
gem 'rubocop', '1.12.1', require: false
|
|
9
9
|
gem 'rubocop-performance', require: false
|
|
10
|
+
gem 'rubocop-rake', require: false
|
|
11
|
+
gem 'rubocop-rspec', require: false
|
data/LICENSE.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2010-
|
|
3
|
+
Copyright (c) 2010-2021 DNSimple Corporation
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A Ruby client for the [DNSimple API v2](https://developer.dnsimple.com/v2/).
|
|
4
4
|
|
|
5
|
-
[](https://coveralls.io/r/dnsimple/dnsimple-ruby?branch=
|
|
5
|
+
[](https://travis-ci.com/dnsimple/dnsimple-ruby)
|
|
6
|
+
[](https://coveralls.io/r/dnsimple/dnsimple-ruby?branch=main)
|
|
7
7
|
|
|
8
8
|
[DNSimple](https://dnsimple.com/) provides DNS hosting and domain registration that is simple and friendly.
|
|
9
9
|
We provide a full API and an easy-to-use web interface so you can get your domain registered and set up with a minimal amount of effort.
|
|
@@ -20,7 +20,7 @@ gem install dnsimple
|
|
|
20
20
|
Or use Bundler and define it as a dependency in your Gemfile:
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
gem 'dnsimple', '~>
|
|
23
|
+
gem 'dnsimple', '~> 6.0'
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
## Usage
|
|
@@ -90,4 +90,4 @@ We recommend to customize the user agent. If you are building a library or integ
|
|
|
90
90
|
|
|
91
91
|
## License
|
|
92
92
|
|
|
93
|
-
Copyright (c) 2010-
|
|
93
|
+
Copyright (c) 2010-2021 DNSimple Corporation. This is Free Software distributed under the MIT license.
|
data/lib/dnsimple/client.rb
CHANGED
|
@@ -42,22 +42,30 @@ module Dnsimple
|
|
|
42
42
|
# @!attribute username
|
|
43
43
|
# @see https://developer.dnsimple.com/v2/#authentication
|
|
44
44
|
# @return [String] DNSimple username for Basic Authentication
|
|
45
|
+
attr_accessor :username
|
|
46
|
+
|
|
45
47
|
# @!attribute password
|
|
46
48
|
# @see https://developer.dnsimple.com/v2/#authentication
|
|
47
49
|
# @return [String] DNSimple password for Basic Authentication
|
|
50
|
+
attr_accessor :password
|
|
51
|
+
|
|
48
52
|
# @!attribute domain_api_token
|
|
49
53
|
# @see https://developer.dnsimple.com/v2/#authentication
|
|
50
54
|
# @return [String] Domain API access token for authentication
|
|
55
|
+
attr_accessor :domain_api_token
|
|
56
|
+
|
|
51
57
|
# @!attribute access_token
|
|
52
58
|
# @see https://developer.dnsimple.com/v2/#authentication
|
|
53
59
|
# @return [String] Domain API access token for authentication
|
|
60
|
+
attr_accessor :access_token
|
|
61
|
+
|
|
54
62
|
# @!attribute user_agent
|
|
55
63
|
# @return [String] Configure User-Agent header for requests.
|
|
64
|
+
attr_accessor :user_agent
|
|
65
|
+
|
|
56
66
|
# @!attribute proxy
|
|
57
67
|
# @return [String,nil] Configure address:port values for proxy server
|
|
58
|
-
|
|
59
|
-
attr_accessor :username, :password, :domain_api_token, :access_token,
|
|
60
|
-
:user_agent, :proxy
|
|
68
|
+
attr_accessor :proxy
|
|
61
69
|
|
|
62
70
|
|
|
63
71
|
def initialize(options = {})
|
|
@@ -114,24 +114,6 @@ module Dnsimple
|
|
|
114
114
|
|
|
115
115
|
Dnsimple::Response.new(response, nil)
|
|
116
116
|
end
|
|
117
|
-
|
|
118
|
-
# Resets the domain token.
|
|
119
|
-
#
|
|
120
|
-
# @see https://developer.dnsimple.com/v2/domains/#reset-token
|
|
121
|
-
#
|
|
122
|
-
# @param [Integer] account_id the account ID
|
|
123
|
-
# @param [#to_s] domain_id The domain ID or domain name
|
|
124
|
-
# @param [Hash] options
|
|
125
|
-
# @return [Dnsimple::Response<nil>]
|
|
126
|
-
#
|
|
127
|
-
# @raise [Dnsimple::NotFoundError]
|
|
128
|
-
# @raise [Dnsimple::RequestError]
|
|
129
|
-
def reset_domain_token(account_id, domain_id, options = {})
|
|
130
|
-
response = client.post(Client.versioned("/%s/domains/%s/token" % [account_id, domain_id]), nil, options)
|
|
131
|
-
|
|
132
|
-
Dnsimple::Response.new(response, Struct::Domain.new(response["data"]))
|
|
133
|
-
end
|
|
134
|
-
|
|
135
117
|
end
|
|
136
118
|
end
|
|
137
119
|
end
|
|
@@ -50,6 +50,26 @@ module Dnsimple
|
|
|
50
50
|
Dnsimple::Response.new(response, Struct::DomainPremiumPrice.new(response["data"]))
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
+
# Get prices for a domain.
|
|
54
|
+
# @see https://developer.dnsimple.com/v2/registrar/#getDomainPrices
|
|
55
|
+
#
|
|
56
|
+
# @example Check prices for example.com:
|
|
57
|
+
# client.registrar.get_domain_prices(1010, "example.com")
|
|
58
|
+
#
|
|
59
|
+
# @param [Integer] account_id the Account id
|
|
60
|
+
# @param [String] domain_name the domain name to find the prices
|
|
61
|
+
# @param [Hash] options
|
|
62
|
+
#
|
|
63
|
+
# @return [Struct::DomainPrice]
|
|
64
|
+
#
|
|
65
|
+
# @raise [RequestError] When the request fails.
|
|
66
|
+
def get_domain_prices(account_id, domain_name, options = {})
|
|
67
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/prices" % [account_id, domain_name])
|
|
68
|
+
response = client.get(endpoint, options)
|
|
69
|
+
|
|
70
|
+
Dnsimple::Response.new(response, Struct::DomainPrice.new(response["data"]))
|
|
71
|
+
end
|
|
72
|
+
|
|
53
73
|
# Registers a domain.
|
|
54
74
|
#
|
|
55
75
|
# @see https://developer.dnsimple.com/v2/registrar/#register
|
|
@@ -78,7 +78,7 @@ module Dnsimple
|
|
|
78
78
|
#
|
|
79
79
|
# @raise [RequestError] When the request fails.
|
|
80
80
|
def renew_whois_privacy(account_id, domain_name, options = {})
|
|
81
|
-
endpoint = whois_privacy_endpoint(account_id, domain_name)
|
|
81
|
+
endpoint = "#{whois_privacy_endpoint(account_id, domain_name)}/renewals"
|
|
82
82
|
response = client.post(endpoint, nil, options)
|
|
83
83
|
|
|
84
84
|
Dnsimple::Response.new(response, Struct::WhoisPrivacyRenewal.new(response["data"]))
|
data/lib/dnsimple/default.rb
CHANGED
data/lib/dnsimple/extra.rb
CHANGED
|
@@ -36,7 +36,7 @@ module Dnsimple
|
|
|
36
36
|
this[current_key] = if this_value.is_a?(Hash) && other_value.is_a?(Hash)
|
|
37
37
|
deep_merge(this_value, other_value, &block)
|
|
38
38
|
else
|
|
39
|
-
if
|
|
39
|
+
if block && key?(current_key)
|
|
40
40
|
block.call(current_key, this_value, other_value)
|
|
41
41
|
else
|
|
42
42
|
other_value
|
data/lib/dnsimple/response.rb
CHANGED
|
@@ -41,9 +41,7 @@ module Dnsimple
|
|
|
41
41
|
|
|
42
42
|
# The CollectionResponse is a specific type of Response where the data is a collection of enumerable objects.
|
|
43
43
|
class CollectionResponse < Response
|
|
44
|
-
|
|
45
|
-
super
|
|
46
|
-
end
|
|
44
|
+
|
|
47
45
|
end
|
|
48
46
|
|
|
49
47
|
# The PaginatedResponse is a specific type of Response that also exposes pagination metadata.
|
data/lib/dnsimple/struct.rb
CHANGED
|
@@ -27,6 +27,7 @@ require_relative 'struct/dnssec'
|
|
|
27
27
|
require_relative 'struct/domain'
|
|
28
28
|
require_relative 'struct/domain_check'
|
|
29
29
|
require_relative 'struct/domain_premium_price'
|
|
30
|
+
require_relative 'struct/domain_price'
|
|
30
31
|
require_relative 'struct/domain_push'
|
|
31
32
|
require_relative 'struct/domain_registration'
|
|
32
33
|
require_relative 'struct/domain_transfer'
|
|
@@ -4,13 +4,6 @@ module Dnsimple
|
|
|
4
4
|
module Struct
|
|
5
5
|
|
|
6
6
|
class Certificate < Base
|
|
7
|
-
|
|
8
|
-
def initialize(attributes = {})
|
|
9
|
-
attributes.delete("expires_on")
|
|
10
|
-
super
|
|
11
|
-
@expires_on = Date.parse(expires_at).to_s if expires_at
|
|
12
|
-
end
|
|
13
|
-
|
|
14
7
|
# @return [Integer] The certificate ID in DNSimple.
|
|
15
8
|
attr_accessor :id
|
|
16
9
|
|
|
@@ -49,18 +42,6 @@ module Dnsimple
|
|
|
49
42
|
|
|
50
43
|
# @return [String] The timestamp when the certificate will expire.
|
|
51
44
|
attr_accessor :expires_at
|
|
52
|
-
|
|
53
|
-
# @deprecated Please use #expires_at instead.
|
|
54
|
-
# @return [String] The date when the certificate will expire.
|
|
55
|
-
def expires_on
|
|
56
|
-
warn "[DEPRECATION] Certificate#expires_on is deprecated. Please use `expires_at` instead."
|
|
57
|
-
@expires_on
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def expires_on=(expiration_date)
|
|
61
|
-
warn "[DEPRECATION] Certificate#expires_on= is deprecated. Please use `expires_at=` instead."
|
|
62
|
-
@expires_on = expiration_date
|
|
63
|
-
end
|
|
64
45
|
end
|
|
65
46
|
|
|
66
47
|
end
|
|
@@ -4,13 +4,6 @@ module Dnsimple
|
|
|
4
4
|
module Struct
|
|
5
5
|
|
|
6
6
|
class Domain < Base
|
|
7
|
-
|
|
8
|
-
def initialize(attributes = {})
|
|
9
|
-
attributes.delete("expires_on")
|
|
10
|
-
super
|
|
11
|
-
@expires_on = Date.parse(expires_at).to_s if expires_at
|
|
12
|
-
end
|
|
13
|
-
|
|
14
7
|
# @return [Integer] The domain ID in DNSimple.
|
|
15
8
|
attr_accessor :id
|
|
16
9
|
|
|
@@ -43,19 +36,6 @@ module Dnsimple
|
|
|
43
36
|
|
|
44
37
|
# @return [String] When the domain was last updated in DNSimple.
|
|
45
38
|
attr_accessor :updated_at
|
|
46
|
-
|
|
47
|
-
# @deprecated Please use #expires_at instead.
|
|
48
|
-
# @return [String] The date the domain will expire.
|
|
49
|
-
def expires_on
|
|
50
|
-
warn "[DEPRECATION] Domain#expires_on is deprecated. Please use `expires_at` instead."
|
|
51
|
-
@expires_on
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def expires_on=(expiration_date)
|
|
55
|
-
warn "[DEPRECATION] Domain#expires_on= is deprecated. Please use `expires_at=` instead."
|
|
56
|
-
@expires_on = expiration_date
|
|
57
|
-
end
|
|
58
|
-
|
|
59
39
|
end
|
|
60
40
|
end
|
|
61
41
|
end
|