dnsimple 4.6.0 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +12 -0
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +9 -13
  5. data/.rubocop_dnsimple.yml +42 -40
  6. data/.rubocop_todo.yml +44 -5
  7. data/.travis.yml +14 -8
  8. data/CHANGELOG.md +56 -26
  9. data/CONTRIBUTING.md +43 -0
  10. data/Gemfile +6 -1
  11. data/LICENSE.txt +1 -1
  12. data/README.md +10 -7
  13. data/dnsimple.gemspec +3 -3
  14. data/lib/dnsimple.rb +2 -0
  15. data/lib/dnsimple/client.rb +23 -13
  16. data/lib/dnsimple/client/accounts.rb +2 -0
  17. data/lib/dnsimple/client/certificates.rb +2 -0
  18. data/lib/dnsimple/client/clients.rb +5 -2
  19. data/lib/dnsimple/client/contacts.rb +2 -0
  20. data/lib/dnsimple/client/domains.rb +3 -19
  21. data/lib/dnsimple/client/domains_collaborators.rb +2 -0
  22. data/lib/dnsimple/client/domains_delegation_signer_records.rb +2 -0
  23. data/lib/dnsimple/client/domains_dnssec.rb +2 -0
  24. data/lib/dnsimple/client/domains_email_forwards.rb +2 -0
  25. data/lib/dnsimple/client/domains_pushes.rb +2 -0
  26. data/lib/dnsimple/client/identity.rb +2 -0
  27. data/lib/dnsimple/client/oauth.rb +2 -0
  28. data/lib/dnsimple/client/registrar.rb +69 -0
  29. data/lib/dnsimple/client/registrar_auto_renewal.rb +2 -0
  30. data/lib/dnsimple/client/registrar_delegation.rb +2 -0
  31. data/lib/dnsimple/client/registrar_whois_privacy.rb +3 -1
  32. data/lib/dnsimple/client/services.rb +2 -0
  33. data/lib/dnsimple/client/services_domains.rb +2 -0
  34. data/lib/dnsimple/client/templates.rb +2 -0
  35. data/lib/dnsimple/client/templates_domains.rb +2 -0
  36. data/lib/dnsimple/client/templates_records.rb +2 -0
  37. data/lib/dnsimple/client/tlds.rb +2 -0
  38. data/lib/dnsimple/client/vanity_name_servers.rb +12 -10
  39. data/lib/dnsimple/client/webhooks.rb +2 -0
  40. data/lib/dnsimple/client/zones.rb +2 -0
  41. data/lib/dnsimple/client/zones_distributions.rb +2 -0
  42. data/lib/dnsimple/client/zones_records.rb +2 -0
  43. data/lib/dnsimple/default.rb +12 -10
  44. data/lib/dnsimple/error.rb +3 -1
  45. data/lib/dnsimple/extra.rb +4 -2
  46. data/lib/dnsimple/options.rb +2 -0
  47. data/lib/dnsimple/response.rb +7 -7
  48. data/lib/dnsimple/struct.rb +3 -0
  49. data/lib/dnsimple/struct/account.rb +2 -0
  50. data/lib/dnsimple/struct/certificate.rb +4 -2
  51. data/lib/dnsimple/struct/certificate_bundle.rb +5 -0
  52. data/lib/dnsimple/struct/certificate_purchase.rb +2 -0
  53. data/lib/dnsimple/struct/certificate_renewal.rb +2 -0
  54. data/lib/dnsimple/struct/collaborator.rb +2 -0
  55. data/lib/dnsimple/struct/contact.rb +2 -0
  56. data/lib/dnsimple/struct/delegation_signer_record.rb +2 -0
  57. data/lib/dnsimple/struct/dnssec.rb +2 -0
  58. data/lib/dnsimple/struct/domain.rb +4 -3
  59. data/lib/dnsimple/struct/domain_check.rb +2 -0
  60. data/lib/dnsimple/struct/domain_premium_price.rb +2 -0
  61. data/lib/dnsimple/struct/domain_price.rb +24 -0
  62. data/lib/dnsimple/struct/domain_push.rb +2 -0
  63. data/lib/dnsimple/struct/domain_registration.rb +2 -0
  64. data/lib/dnsimple/struct/domain_renewal.rb +2 -0
  65. data/lib/dnsimple/struct/domain_transfer.rb +5 -0
  66. data/lib/dnsimple/struct/email_forward.rb +2 -0
  67. data/lib/dnsimple/struct/extended_attribute.rb +2 -0
  68. data/lib/dnsimple/struct/oauth_token.rb +2 -0
  69. data/lib/dnsimple/struct/service.rb +2 -0
  70. data/lib/dnsimple/struct/template.rb +2 -0
  71. data/lib/dnsimple/struct/template_record.rb +2 -0
  72. data/lib/dnsimple/struct/tld.rb +2 -0
  73. data/lib/dnsimple/struct/user.rb +2 -0
  74. data/lib/dnsimple/struct/vanity_name_server.rb +2 -0
  75. data/lib/dnsimple/struct/webhook.rb +2 -0
  76. data/lib/dnsimple/struct/whoami.rb +2 -0
  77. data/lib/dnsimple/struct/whois_privacy.rb +2 -0
  78. data/lib/dnsimple/struct/whois_privacy_renewal.rb +2 -0
  79. data/lib/dnsimple/struct/zone.rb +2 -0
  80. data/lib/dnsimple/struct/zone_distribution.rb +2 -0
  81. data/lib/dnsimple/struct/zone_file.rb +2 -0
  82. data/lib/dnsimple/struct/zone_record.rb +2 -0
  83. data/lib/dnsimple/version.rb +3 -1
  84. data/spec/dnsimple/client/accounts_spec.rb +2 -0
  85. data/spec/dnsimple/client/certificates_spec.rb +35 -33
  86. data/spec/dnsimple/client/client_service_spec.rb +3 -1
  87. data/spec/dnsimple/client/contacts_spec.rb +4 -2
  88. data/spec/dnsimple/client/domains_collaborators_spec.rb +4 -2
  89. data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +3 -1
  90. data/spec/dnsimple/client/domains_dnssec_spec.rb +2 -0
  91. data/spec/dnsimple/client/domains_email_forwards_spec.rb +10 -8
  92. data/spec/dnsimple/client/domains_pushes_spec.rb +4 -2
  93. data/spec/dnsimple/client/domains_spec.rb +16 -41
  94. data/spec/dnsimple/client/identity_spec.rb +2 -0
  95. data/spec/dnsimple/client/oauth_spec.rb +2 -0
  96. data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +2 -0
  97. data/spec/dnsimple/client/registrar_delegation_spec.rb +4 -2
  98. data/spec/dnsimple/client/registrar_spec.rb +116 -4
  99. data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +2 -0
  100. data/spec/dnsimple/client/services_domains_spec.rb +4 -4
  101. data/spec/dnsimple/client/services_spec.rb +3 -3
  102. data/spec/dnsimple/client/templates_domains_spec.rb +2 -0
  103. data/spec/dnsimple/client/templates_records_spec.rb +3 -1
  104. data/spec/dnsimple/client/templates_spec.rb +4 -2
  105. data/spec/dnsimple/client/tlds_spec.rb +2 -0
  106. data/spec/dnsimple/client/vanity_name_servers_spec.rb +2 -0
  107. data/spec/dnsimple/client/webhooks_spec.rb +3 -1
  108. data/spec/dnsimple/client/zones_distributions_spec.rb +2 -0
  109. data/spec/dnsimple/client/zones_records_spec.rb +4 -2
  110. data/spec/dnsimple/client/zones_spec.rb +3 -1
  111. data/spec/dnsimple/client_spec.rb +18 -16
  112. data/spec/dnsimple/extra_spec.rb +2 -0
  113. data/spec/dnsimple/options/base_spec.rb +2 -0
  114. data/spec/dnsimple/options/list_options_spec.rb +6 -4
  115. data/spec/fixtures.http/accounts/success-account.http +0 -1
  116. data/spec/fixtures.http/accounts/success-user.http +0 -1
  117. data/spec/fixtures.http/addCollaborator/invite-success.http +0 -1
  118. data/spec/fixtures.http/addCollaborator/success.http +0 -1
  119. data/spec/fixtures.http/appliedServices/success.http +0 -1
  120. data/spec/fixtures.http/cancelDomainTransfer/success.http +18 -0
  121. data/spec/fixtures.http/changeDomainDelegation/success.http +0 -1
  122. data/spec/fixtures.http/changeDomainDelegationToVanity/success.http +0 -1
  123. data/spec/fixtures.http/checkDomain/success.http +0 -1
  124. data/spec/fixtures.http/checkDomainPremiumPrice/error_400_not_a_premium_domain.http +18 -0
  125. data/spec/fixtures.http/checkDomainPremiumPrice/error_400_tld_not_supported.http +18 -0
  126. data/spec/fixtures.http/checkDomainPremiumPrice/success.http +20 -0
  127. data/spec/fixtures.http/checkZoneDistribution/error.http +0 -1
  128. data/spec/fixtures.http/checkZoneDistribution/failure.http +0 -1
  129. data/spec/fixtures.http/checkZoneDistribution/success.http +0 -1
  130. data/spec/fixtures.http/checkZoneRecordDistribution/error.http +0 -1
  131. data/spec/fixtures.http/checkZoneRecordDistribution/failure.http +0 -1
  132. data/spec/fixtures.http/checkZoneRecordDistribution/success.http +0 -1
  133. data/spec/fixtures.http/createContact/created.http +0 -1
  134. data/spec/fixtures.http/createDelegationSignerRecord/created.http +0 -1
  135. data/spec/fixtures.http/createDelegationSignerRecord/validation-error.http +0 -1
  136. data/spec/fixtures.http/createDomain/created.http +20 -16
  137. data/spec/fixtures.http/createEmailForward/created.http +21 -17
  138. data/spec/fixtures.http/createPrimaryServer/created.http +21 -0
  139. data/spec/fixtures.http/createSecondaryZone/created.http +21 -0
  140. data/spec/fixtures.http/createTemplate/created.http +0 -1
  141. data/spec/fixtures.http/createTemplateRecord/created.http +0 -1
  142. data/spec/fixtures.http/createWebhook/created.http +0 -1
  143. data/spec/fixtures.http/createZoneRecord/created-apex.http +0 -1
  144. data/spec/fixtures.http/createZoneRecord/created.http +0 -1
  145. data/spec/fixtures.http/deleteContact/error-contact-in-use.http +18 -0
  146. data/spec/fixtures.http/deleteEmailForward/success.http +12 -7
  147. data/spec/fixtures.http/disableDnssec/not-enabled.http +0 -1
  148. data/spec/fixtures.http/disableWhoisPrivacy/success.http +0 -1
  149. data/spec/fixtures.http/downloadCertificate/success.http +0 -1
  150. data/spec/fixtures.http/enableDnssec/success.http +0 -1
  151. data/spec/fixtures.http/enableVanityNameServers/success.http +0 -1
  152. data/spec/fixtures.http/enableWhoisPrivacy/created.http +0 -1
  153. data/spec/fixtures.http/enableWhoisPrivacy/success.http +0 -1
  154. data/spec/fixtures.http/getCertificate/success.http +10 -11
  155. data/spec/fixtures.http/getCertificatePrivateKey/success.http +0 -1
  156. data/spec/fixtures.http/getContact/success.http +0 -1
  157. data/spec/fixtures.http/getDelegationSignerRecord/success.http +0 -1
  158. data/spec/fixtures.http/getDnssec/success.http +0 -1
  159. data/spec/fixtures.http/getDomain/success.http +13 -9
  160. data/spec/fixtures.http/getDomainDelegation/success-empty.http +0 -1
  161. data/spec/fixtures.http/getDomainDelegation/success.http +0 -1
  162. data/spec/fixtures.http/getDomainPremiumPrice/failure.http +0 -1
  163. data/spec/fixtures.http/getDomainPremiumPrice/success.http +0 -1
  164. data/spec/fixtures.http/getDomainPrices/failure.http +19 -0
  165. data/spec/fixtures.http/getDomainPrices/success.http +21 -0
  166. data/spec/fixtures.http/getDomainTransfer/success.http +20 -0
  167. data/spec/fixtures.http/getEmailForward/success.http +14 -10
  168. data/spec/fixtures.http/getPrimaryServer/success.http +21 -0
  169. data/spec/fixtures.http/getService/success.http +0 -1
  170. data/spec/fixtures.http/getTemplate/success.http +0 -1
  171. data/spec/fixtures.http/getTemplateRecord/success.http +0 -1
  172. data/spec/fixtures.http/getTld/success.http +0 -1
  173. data/spec/fixtures.http/getTldExtendedAttributes/success-attributes.http +0 -1
  174. data/spec/fixtures.http/getTldExtendedAttributes/success-noattributes.http +0 -1
  175. data/spec/fixtures.http/getTldExtendedAttributes/success.http +0 -1
  176. data/spec/fixtures.http/getWebhook/success.http +0 -1
  177. data/spec/fixtures.http/getWhoisPrivacy/success.http +0 -1
  178. data/spec/fixtures.http/getZone/success.http +0 -1
  179. data/spec/fixtures.http/getZoneFile/success.http +0 -1
  180. data/spec/fixtures.http/getZoneRecord/success.http +0 -1
  181. data/spec/fixtures.http/initiatePush/success.http +0 -1
  182. data/spec/fixtures.http/issueLetsencryptCertificate/success.http +18 -21
  183. data/spec/fixtures.http/issueRenewalLetsencryptCertificate/success.http +18 -21
  184. data/spec/fixtures.http/linkPrimaryServer/success.http +21 -0
  185. data/spec/fixtures.http/listAccounts/success-account.http +0 -1
  186. data/spec/fixtures.http/listAccounts/success-user.http +0 -1
  187. data/spec/fixtures.http/listCertificates/success.http +10 -11
  188. data/spec/fixtures.http/listCollaborators/success.http +0 -1
  189. data/spec/fixtures.http/listContacts/success.http +0 -1
  190. data/spec/fixtures.http/listDelegationSignerRecords/success.http +0 -1
  191. data/spec/fixtures.http/listDomains/success.http +20 -16
  192. data/spec/fixtures.http/listEmailForwards/success.http +0 -1
  193. data/spec/fixtures.http/listPrimaryServers/success.http +21 -0
  194. data/spec/fixtures.http/listPushes/success.http +0 -1
  195. data/spec/fixtures.http/listServices/success.http +0 -1
  196. data/spec/fixtures.http/listTemplateRecords/success.http +0 -1
  197. data/spec/fixtures.http/listTemplates/success.http +0 -1
  198. data/spec/fixtures.http/listTlds/success.http +0 -1
  199. data/spec/fixtures.http/listWebhooks/success.http +0 -1
  200. data/spec/fixtures.http/listZoneRecords/success.http +0 -1
  201. data/spec/fixtures.http/listZones/success.http +0 -1
  202. data/spec/fixtures.http/method-not-allowed.http +0 -1
  203. data/spec/fixtures.http/notfound-certificate.http +0 -1
  204. data/spec/fixtures.http/notfound-collaborator.http +0 -1
  205. data/spec/fixtures.http/notfound-contact.http +0 -1
  206. data/spec/fixtures.http/notfound-delegationsignerrecord.http +0 -1
  207. data/spec/fixtures.http/notfound-domain.http +0 -1
  208. data/spec/fixtures.http/notfound-domainpush.http +0 -1
  209. data/spec/fixtures.http/notfound-emailforward.http +0 -1
  210. data/spec/fixtures.http/notfound-record.http +0 -1
  211. data/spec/fixtures.http/notfound-template.http +0 -1
  212. data/spec/fixtures.http/notfound-webhook.http +0 -1
  213. data/spec/fixtures.http/notfound-whoisprivacy.http +0 -1
  214. data/spec/fixtures.http/notfound-zone.http +0 -1
  215. data/spec/fixtures.http/oauthAccessToken/error-invalid-request.http +0 -1
  216. data/spec/fixtures.http/oauthAccessToken/success.http +0 -1
  217. data/spec/fixtures.http/pages-1of3.http +0 -1
  218. data/spec/fixtures.http/pages-2of3.http +0 -1
  219. data/spec/fixtures.http/pages-3of3.http +0 -1
  220. data/spec/fixtures.http/purchaseLetsencryptCertificate/success.http +20 -21
  221. data/spec/fixtures.http/purchaseRenewalLetsencryptCertificate/success.http +20 -21
  222. data/spec/fixtures.http/registerDomain/success.http +1 -2
  223. data/spec/fixtures.http/renewDomain/error-tooearly.http +0 -1
  224. data/spec/fixtures.http/renewDomain/success.http +1 -2
  225. data/spec/fixtures.http/renewWhoisPrivacy/success.http +0 -1
  226. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-duplicated-order.http +1 -2
  227. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-not-found.http +1 -2
  228. data/spec/fixtures.http/response.http +0 -1
  229. data/spec/fixtures.http/transferDomain/error-indnsimple.http +0 -1
  230. data/spec/fixtures.http/transferDomain/error-missing-authcode.http +0 -1
  231. data/spec/fixtures.http/transferDomain/success.http +1 -2
  232. data/spec/fixtures.http/unlinkPrimaryServer/success.http +21 -0
  233. data/spec/fixtures.http/updateContact/success.http +0 -1
  234. data/spec/fixtures.http/updateTemplate/success.http +0 -1
  235. data/spec/fixtures.http/updateZoneRecord/success.http +0 -1
  236. data/spec/fixtures.http/validation-error.http +0 -1
  237. data/spec/fixtures.http/whoami/success-account.http +0 -1
  238. data/spec/fixtures.http/whoami/success-user.http +0 -1
  239. data/spec/fixtures.http/whoami/success.http +0 -1
  240. data/spec/spec_helper.rb +3 -1
  241. data/spec/support/helpers.rb +2 -0
  242. data/spec/support/webmock.rb +2 -0
  243. metadata +36 -15
  244. data/.ruby-gemset +0 -1
  245. data/spec/fixtures.http/resetDomainToken/success.http +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ccd26ac738f667185d2005071eb215045dcce8bdcaaf48ba5b1b31f9187bdcf
4
- data.tar.gz: a8474bcd18275b39465931d06230fd07434a839a39dbfeead1e130289929f7a6
3
+ metadata.gz: 2cf8d057d98c78bf3b8584e15b561624dfb35f1264f80d0c5861e970053b18f3
4
+ data.tar.gz: acc7e6f33680ba4195243b474dca108e566c953ed2474e36fd9631c9f6b1f2fc
5
5
  SHA512:
6
- metadata.gz: bb079ccceb1587b61ce3d0660a9963dad812d01da3634d0581dc80095fb2157fc86a191d711590bfb8d85c48c9c47e47a6a30b7e6e14c107b50195894e552c67
7
- data.tar.gz: e7a5735a36b36dca5dee66104d90c0bbdb83afa878a9e5423bcac5b46b965a5324e16ad6380cb9f8a51ee91d3df8baa3bff47633c750b9ce529d0a9ed62c0e78
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/.gitignore CHANGED
@@ -7,3 +7,6 @@ Gemfile.lock
7
7
  .yardoc
8
8
  yardoc/
9
9
  doc/
10
+
11
+ #ASDF
12
+ .tool-versions
data/.rubocop.yml CHANGED
@@ -2,22 +2,18 @@ inherit_from:
2
2
  - .rubocop_todo.yml
3
3
  - .rubocop_dnsimple.yml
4
4
 
5
+ require:
6
+ - rubocop-performance
7
+ - rubocop-rake
8
+ - rubocop-rspec
9
+
5
10
  AllCops:
11
+ TargetRubyVersion: 2.6
6
12
  Exclude:
7
13
  - '*.gemspec'
8
14
  - 'Rakefile'
15
+ - 'vendor/**/*'
9
16
 
10
- # [codesmell]
11
- # It's irrelevant here, but it could be a code smell.
12
- # Hence keep it disabled, but don't include it in the DNSimple suite.
13
- Lint/Loop:
14
- Enabled: false
15
-
16
- # It doesn't seem to work as expected.
17
- Style/IfUnlessModifier:
18
- Enabled: false
19
-
20
- # This rule suggest to use safe navigation (&.) operator which was introduced
21
- # with Ruby 2.3. Because we are supporting Ruby 2.0+ we can't use this operator.
22
- Style/SafeNavigation:
17
+ # This rule conflicts with our specs codebase using Ruby 2.x and 3.x
18
+ Lint/NonDeterministicRequireOrder:
23
19
  Enabled: false
@@ -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.
@@ -19,6 +20,10 @@ Bundler/OrderedGems:
19
20
  Layout/AccessModifierIndentation:
20
21
  Enabled: false
21
22
 
23
+ # It causes weird aligments, especially for specs.
24
+ Layout/BlockEndNewline:
25
+ Enabled: false
26
+
22
27
  # Generally, the keyword style uses a lot of space. This is particularly true when
23
28
  # you use case/if statements, in combination with a long-name variable.
24
29
  #
@@ -33,7 +38,15 @@ Layout/EndAlignment:
33
38
  EnforcedStyleAlignWith: variable
34
39
 
35
40
  # [codesmell]
36
- Lint/HandleExceptions:
41
+ Layout/LineLength:
42
+ Enabled: false
43
+ Exclude:
44
+ - 'spec/**/*_spec.rb'
45
+ - 'test/**/*_test.rb'
46
+ Max: 100
47
+
48
+ # [codesmell]
49
+ Lint/SuppressedException:
37
50
  Enabled: false
38
51
 
39
52
  # [codesmell]
@@ -61,14 +74,6 @@ Metrics/ClassLength:
61
74
  - 'spec/**/*_spec.rb'
62
75
  - 'test/**/*_test.rb'
63
76
 
64
- # [codesmell]
65
- Metrics/LineLength:
66
- Enabled: false
67
- Exclude:
68
- - 'spec/**/*_spec.rb'
69
- - 'test/**/*_test.rb'
70
- Max: 100
71
-
72
77
  # [codesmell]
73
78
  Metrics/MethodLength:
74
79
  Enabled: false
@@ -105,17 +110,16 @@ Naming/MemoizedInstanceVariableName:
105
110
  Naming/PredicateName:
106
111
  Enabled: false
107
112
 
113
+ # The team agreed decided to use exception
114
+ Naming/RescuedExceptionsVariableName:
115
+ PreferredName: 'exception'
116
+
108
117
  # This cop triggers several false positives that make sense in our domain model.
109
118
  # For instance, ip is considered an uncommunicative parameter name:
110
119
  #
111
120
  # ipv4_to_arpa_name(ip)
112
121
  #
113
- Naming/UncommunicativeMethodParamName:
114
- Enabled: false
115
-
116
- # [codesmell]
117
- # I don't really get the point of this cop.
118
- Performance/RedundantMerge:
122
+ Naming/MethodParameterName:
119
123
  Enabled: false
120
124
 
121
125
  # This cop returns false positive violations (as of rubocop 0.57.0)
@@ -138,12 +142,6 @@ Style/BlockDelimiters:
138
142
  IgnoredMethods:
139
143
  - expect
140
144
 
141
- # I'm not sure we should enforce a style,
142
- # but if we do, context_dependent offers a good compromise on readability.
143
- Style/BracesAroundHashParameters:
144
- Enabled: false
145
- EnforcedStyle: context_dependent
146
-
147
145
  # Warn on empty else.
148
146
  Style/EmptyElse:
149
147
  EnforcedStyle: empty
@@ -164,20 +162,26 @@ Style/FormatString:
164
162
  Style/FormatStringToken:
165
163
  Enabled: false
166
164
 
167
- # We don't support frozen strings.
168
- # This is an experimental feature and we don't know if it will be shipped with
169
- # Ruby 3.0 or not.
170
- Style/FrozenStringLiteralComment:
171
- Enabled: false
172
-
173
165
  # Prefer the latest Hash syntax
174
166
  Style/HashSyntax:
175
167
  Exclude:
176
- # But Rakefiles generally have some definition like
168
+ # Rakefiles generally have definitions like
177
169
  # :default => :test
178
170
  # that looks nicer with the old rocket syntax.
179
171
  - 'Rakefile'
180
172
 
173
+ # Enforces usage of Hash#each_key and Hash#each_value (vs. Hash#keys.each and Hash#values.each).
174
+ Style/HashEachMethods:
175
+ Enabled: true
176
+
177
+ # Enforce the use of Hash#TransformKeys introduced in Ruby 2.5 to transform Hash keys.
178
+ Style/HashTransformKeys:
179
+ Enabled: true
180
+
181
+ # Enforce the use of Hash#TransformValues introduced in Ruby 2.5 to transform Hash values.
182
+ Style/HashTransformValues:
183
+ Enabled: true
184
+
181
185
  # We want to be able to decide when to use one-line if/unless modifiers.
182
186
  Style/IfUnlessModifier:
183
187
  Enabled: false
@@ -188,7 +192,7 @@ Style/IfInsideElse:
188
192
  Enabled: false
189
193
 
190
194
  # module_function doesn't respect the visibility of the methods,
191
- # and doesn't work well when the module contain both public/private methods.
195
+ # and doesn't work well when the module contains both public/private methods.
192
196
  Style/ModuleFunction:
193
197
  Enabled: false
194
198
 
@@ -343,18 +347,16 @@ Layout/EmptyLineBetweenDefs:
343
347
  Enabled: false
344
348
 
345
349
  # Multi-line differs from standard indentation, they are indented twice.
346
- Layout/FirstParameterIndentation:
350
+ Layout/FirstArgumentIndentation:
347
351
  IndentationWidth: 4
348
352
 
349
- # Array indentation should be considered like MultilineMethodCallIndentation indentation
350
- # and use 4 spaces instead of 2.
351
- Layout/IndentArray:
352
- IndentationWidth: 4
353
+ # Array indentation should be consistent with method/variable definition.
354
+ Layout/FirstArrayElementIndentation:
355
+ EnforcedStyle: consistent
353
356
 
354
- # Hash indentation should be considered like MultilineMethodCallIndentation indentation
355
- # and use 4 spaces instead of 2.
356
- Layout/IndentHash:
357
- IndentationWidth: 4
357
+ # Hash indentation should be consistent with method/variable definition.
358
+ Layout/FirstHashElementIndentation:
359
+ EnforcedStyle: consistent
358
360
 
359
361
  # Multi-line differs from standard indentation, they are indented twice.
360
362
  Layout/MultilineMethodCallIndentation:
@@ -370,9 +372,9 @@ Layout/MultilineOperationIndentation:
370
372
  #
371
373
  # %w( foo bar )
372
374
  #
373
- # looks better to me than
375
+ # looks better than:
374
376
  #
375
- # %w( foo bar )
377
+ # %w(foo bar)
376
378
  #
377
379
  Layout/SpaceInsidePercentLiteralDelimiters:
378
380
  Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,14 +1,53 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2016-03-27 01:01:12 +0100 using RuboCop version 0.38.0.
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
- Style/Documentation:
10
- # Silence this check for now until we fix it.
9
+ # Offense count: 71
10
+ # Configuration parameters: CountAsOne.
11
+ RSpec/ExampleLength:
12
+ Max: 17
13
+
14
+ # Offense count: 1
15
+ RSpec/LeakyConstantDeclaration:
16
+ Exclude:
17
+ - 'spec/dnsimple/client/client_service_spec.rb'
18
+
19
+ # Offense count: 11
20
+ # Configuration parameters: .
21
+ # SupportedStyles: have_received, receive
22
+ RSpec/MessageSpies:
23
+ EnforcedStyle: receive
24
+
25
+ # Offense count: 112
26
+ RSpec/MultipleExpectations:
27
+ Max: 15
28
+
29
+ # Offense count: 375
30
+ # Configuration parameters: IgnoreSharedExamples.
31
+ RSpec/NamedSubject:
11
32
  Enabled: false
33
+
34
+ # Offense count: 16
35
+ RSpec/SubjectStub:
12
36
  Exclude:
13
- - 'spec/**/*'
14
- - 'test/**/*'
37
+ - 'spec/dnsimple/client/certificates_spec.rb'
38
+ - 'spec/dnsimple/client/contacts_spec.rb'
39
+ - 'spec/dnsimple/client/domains_delegation_signer_records_spec.rb'
40
+ - 'spec/dnsimple/client/domains_email_forwards_spec.rb'
41
+ - 'spec/dnsimple/client/domains_spec.rb'
42
+ - 'spec/dnsimple/client/services_spec.rb'
43
+ - 'spec/dnsimple/client/templates_records_spec.rb'
44
+ - 'spec/dnsimple/client/templates_spec.rb'
45
+ - 'spec/dnsimple/client/tlds_spec.rb'
46
+ - 'spec/dnsimple/client/zones_records_spec.rb'
47
+ - 'spec/dnsimple/client/zones_spec.rb'
48
+ - 'spec/dnsimple/client_spec.rb'
49
+
50
+ # Offense count: 37
51
+ # Configuration parameters: AllowedConstants.
52
+ Style/Documentation:
53
+ Enabled: false
data/.travis.yml CHANGED
@@ -1,19 +1,25 @@
1
+ dist: focal
2
+
1
3
  language: ruby
2
4
 
3
5
  rvm:
4
- - 2.1
5
- - 2.2
6
- - 2.3
7
- - 2.4
8
- - 2.5
9
6
  - 2.6
7
+ - 2.7
8
+ - 3.0
9
+ - ruby-head
10
+ - truffleruby-head
11
+
12
+ cache: bundler
13
+
14
+ jobs:
15
+ allow_failures:
16
+ - rvm: ruby-head
17
+ - rvm: truffleruby-head
10
18
 
11
19
  env:
12
20
  - COVERALL=1
13
21
 
14
- before_install:
15
- - gem install bundler -v 1.17.3
16
-
17
22
  notifications:
23
+ email: false
18
24
  slack:
19
25
  secure: "N9zPR5jnF1TBiqvb3mCV6Wem3TIvqu4tXiob2P66vBMwmj1ewWvyUzNLwAEOCDc3mRfsI50IYXHewckAUpCWW7XEJlT/pv8llMsoiHqArb7SGJyDdy3ZRr35L7glixs/ikod+xhRKXMM3jML/2MgSa+Culzhl42tMUFDk+bBBQU="
data/CHANGELOG.md CHANGED
@@ -2,13 +2,43 @@
2
2
 
3
3
  This project uses [Semantic Versioning 2.0.0](http://semver.org/).
4
4
 
5
+ ## main
5
6
 
6
- ### 4.6.0
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
+
12
+ ## 6.0.0
13
+
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)
15
+ - REMOVED: `domain.reset_domain_token` endpoint no longer exists and the client method is removed.
16
+ (dnsimple/dnsimple-ruby#231)
17
+ - REMOVED: The deprecated `Domain.expires_on` is removed. (dnsimple/dnsimple-ruby#232)
18
+ - REMOVED: The deprecated `Certificate.expires_on` is removed. (dnsimple/dnsimple-ruby#232)
19
+
20
+ ## 5.2.0
21
+
22
+ - CHANGED: `Certificate#expires_on` (date only) is deprecated in favor of `Certificate#expires_at` (timestamp). (dnsimple/dnsimple-ruby#190)
23
+
24
+ ## 5.1.0
25
+
26
+ - CHANGED: `Domain#expires_on` (date only) is deprecated in favor of `Domain#expires_at` (timestamp). (dnsimple/dnsimple-ruby#186)
27
+
28
+ ## 5.0.0
29
+
30
+ - CHANGED: Minimum Ruby version is now 2.4
31
+ - CHANGED: User-agent format has been changed to prepend custom token before default token.
32
+ - NEW: Added `registrar.get_domain_transfer` to retrieve a domain transfer. (dnsimple/dnsimple-ruby#180)
33
+ - NEW: Added `registrar.cancel_domain_transfer` to cancel an in progress domain transfer. (dnsimple/dnsimple-ruby#180)
34
+ - NEW: Added `DomainTransfer#status_description` attribute to identify the failure reason of a transfer. (dnsimple/dnsimple-ruby#180).
35
+
36
+ ## 4.6.0
7
37
 
8
38
  - NEW: Added WHOIS privacy renewal (GH-171)
9
39
 
10
40
 
11
- ### 4.5.0
41
+ ## 4.5.0
12
42
 
13
43
  - NEW: Added zone distribution and zone record distribution (GH-160)
14
44
 
@@ -19,26 +49,26 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
19
49
  - REMOVED: Removed extra alias (GH-168). You should use `dnsimple.foo.list_foo` instead of `dnsimple.foo.list`. Same for create/update. The change ensures consistency across the various clients. We prefer fully qualified methods.
20
50
 
21
51
 
22
- #### 4.4.0
52
+ ## 4.4.0
23
53
 
24
54
  - NEW: Added Let's Encrypt certificate methods (GH-159)
25
55
 
26
56
  - REMOVED: Removed premium_price attribute from registrar order responses (GH-163). Please do not rely on that attribute, as it returned an incorrect value. The attribute is going to be removed, and the API now returns a null value.
27
57
 
28
58
 
29
- #### 4.3.0
59
+ ## 4.3.0
30
60
 
31
61
  - NEW: Added `certificates.all_certificates` (dnsimple/dnsimple-ruby#155)
32
62
 
33
63
  - CHANGED: Updated registrar URLs (dnsimple/dnsimple-ruby#153)
34
64
 
35
65
 
36
- #### 4.2.0
66
+ ## 4.2.0
37
67
 
38
68
  - NEW: Added DNSSEC support support (dnsimple/dnsimple-ruby#152)
39
69
 
40
70
 
41
- #### 4.1.0
71
+ ## 4.1.0
42
72
 
43
73
  - NEW: Added domain premium price support (dnsimple/dnsimple-ruby#143)
44
74
 
@@ -46,7 +76,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
46
76
  - CHANGED: Normalize unique string identifiers to SID (dnsimple/dnsimple-ruby#141)
47
77
 
48
78
 
49
- #### 4.0.0
79
+ ## 4.0.0
50
80
 
51
81
  - NEW: Added domain collaborators support (GH-137).
52
82
  - NEW: Added regions support for zone records (GH-135, GH-139).
@@ -63,7 +93,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
63
93
  - CHANGED: Renamed registrar `auth_info` into `auth_code` (GH-136).
64
94
 
65
95
 
66
- #### 3.1.0
96
+ ## 3.1.0
67
97
 
68
98
  - NEW: Added accounts support (GH-113).
69
99
  - NEW: Added sorting and filtering support (GH-112).
@@ -77,9 +107,9 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
77
107
  - REMOVED: Removed support for wildcard accounts (GH-107).
78
108
 
79
109
 
80
- #### 3.0.0
110
+ ## 3.0.0
81
111
 
82
- ##### stable
112
+ ### stable
83
113
 
84
114
  - FIXED: The client was using the wrong key to store the ContactsService which could cause conflicts with the DomainsService.
85
115
 
@@ -93,13 +123,13 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
93
123
 
94
124
  - CHANGED: Error detection is now smarter. If the error is deserializable and contains a message, the message is attached to the exception (GH-94, GH-95, GH-100).
95
125
 
96
- ##### beta2
126
+ ### beta2
97
127
 
98
128
  - FIXED: `state` and `redirect_uri` are not properly passed in the request to exchang the code for an access token (GH-89, GH-90).
99
129
 
100
130
  - FIXED: Request body is not properly serialized to JSON, and the "Content-Type" header was omissed (GH-91).
101
131
 
102
- ##### beta1
132
+ ### beta1
103
133
 
104
134
  - CHANGED: Minimum Ruby version >= 2
105
135
 
@@ -109,15 +139,15 @@ The client has been completely redesigned to support the [API v2](https://develo
109
139
 
110
140
  Internal changes were made to match conventions adopted in other clients, such as the Go one and the Elixir one.
111
141
 
112
- #### 2.1.1
142
+ ## 2.1.1
113
143
 
114
144
  - FIXED: Paths may mistakenly be generated use \ on windows.
115
145
 
116
- #### 2.1.0
146
+ ## 2.1.0
117
147
 
118
148
  - NEW: Add the ability to set headers and pass extra connection params in each API method (GH-64)
119
149
 
120
- #### 2.0.0
150
+ ## 2.0.0
121
151
 
122
152
  **2.0.0.alpha**
123
153
 
@@ -129,7 +159,7 @@ Internal changes were made to match conventions adopted in other clients, such a
129
159
 
130
160
  - CHANGED: Drop 1.8.7, 1.9.2 support. Required Ruby >= 1.9.3.
131
161
 
132
- - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [aetrion/dnsimple-ruby-cli](https://github.com/aetrion/dnsimple-ruby-cli)
162
+ - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [dnsimple-ruby-cli](https://github.com/dnsimple/dnsimple-ruby-cli)
133
163
 
134
164
  - CHANGED: Renamed the Gem from "dnsimple-ruby" to "dnsimple" (GH-23).
135
165
 
@@ -141,23 +171,23 @@ Internal changes were made to match conventions adopted in other clients, such a
141
171
 
142
172
  - FIXED: Fixed a bug where API token environment variables were not properly detected (GH-59, GH-62). Thanks @oguzbilgic and @rupurt.
143
173
 
144
- #### Release 1.7.1
174
+ ## Release 1.7.1
145
175
 
146
176
  - FIXED: Updated Certificate to match the serialized attributes (GH-53).
147
177
 
148
- #### Release 1.7.0
178
+ ## Release 1.7.0
149
179
 
150
180
  - NEW: Add support for Domain-based authentication (GH-40, GH-46). Thanks @dwradcliffe and @samsonasu.
151
181
 
152
- #### Release 1.6.0
182
+ ## Release 1.6.0
153
183
 
154
184
  - NEW: Add support for 2FA (GH-44)
155
185
 
156
- #### Release 1.5.5
186
+ ## Release 1.5.5
157
187
 
158
188
  - NEW: Add notice about the CLI moving to a new location
159
189
 
160
- #### Release 1.5.4
190
+ ## Release 1.5.4
161
191
 
162
192
  - NEW: Added domain#expires_on attribute (GH-34). Thanks @alkema
163
193
 
@@ -167,23 +197,23 @@ Internal changes were made to match conventions adopted in other clients, such a
167
197
 
168
198
  - CHANGED: User.me now uses the correct patch for API v1.
169
199
 
170
- #### Release 1.5.3
200
+ ## Release 1.5.3
171
201
 
172
202
  - FIXED: In some cases the client crashed with NoMethodError VERSION (GH-35).
173
203
 
174
- #### Release 1.5.2
204
+ ## Release 1.5.2
175
205
 
176
206
  - NEW: Provide a meaningful user-agent.
177
207
 
178
- #### Release 1.5.1
208
+ ## Release 1.5.1
179
209
 
180
210
  - FIXED: Invalid base URI.
181
211
 
182
- #### Release 1.5.0
212
+ ## Release 1.5.0
183
213
 
184
214
  - CHANGED: Added support for versioned API (GH-33)
185
215
 
186
- #### Release 1.4.0
216
+ ## Release 1.4.0
187
217
 
188
218
  - CHANGED: Normalized exception handling. No more RuntimeError.
189
219
  In case of request error, the client raises RequestError, RecordExists or RecodNotFound