dnsimple 4.5.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.
Files changed (245) hide show
  1. checksums.yaml +4 -4
  2. data/.dependabot/config.yml +9 -0
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +5 -0
  5. data/.rubocop_dnsimple.yml +42 -40
  6. data/.rubocop_todo.yml +63 -5
  7. data/.travis.yml +9 -10
  8. data/CHANGELOG.md +55 -25
  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 +2 -0
  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 +66 -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 +23 -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 +2 -0
  45. data/lib/dnsimple/extra.rb +3 -1
  46. data/lib/dnsimple/options.rb +2 -0
  47. data/lib/dnsimple/response.rb +7 -7
  48. data/lib/dnsimple/struct.rb +4 -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 +30 -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 +2 -0
  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 +57 -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 +3 -1
  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 +2 -0
  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 +20 -0
  226. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-duplicated-order.http +18 -0
  227. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-not-found.http +18 -0
  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 +4 -2
  241. data/spec/support/helpers.rb +2 -0
  242. data/spec/support/webmock.rb +2 -0
  243. metadata +46 -19
  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: 49d2f2a2d0892e3ae7e31b563035cd668200f164a05fcde6b59b5fb497a123ee
4
- data.tar.gz: 572cf3a3277efb2cb55cd5f9a0fc644bfe4a356a2853846e6f3af37a3964e28e
3
+ metadata.gz: a4f667eba7dc3bc3e7718657059de2cc752f966d748b0698326feefad1f93111
4
+ data.tar.gz: 82eabdcd7a27df808db076d4d65bfb196343c3aa607e42d61ba1ff8f7b328349
5
5
  SHA512:
6
- metadata.gz: 90c025c122e88a6408f57abf2ff564ea309e10af4e85c16c2e1d8b513b58cfb726514634abd00e746e98a966827df7082d16ec333d32cb5290c0711a2ac94bd4
7
- data.tar.gz: ba8db8d64adddf8d7aa04f66527eaa0fb00a6ed00be88c52c0a23d21b616ef0ef03a7850e83b0571f6be7d2e227915a4b755b58064136d199adce9b3b2ccf117
6
+ metadata.gz: 8ee87e28d8fd2fef38a9282905146831321e9a443c08216e2399fc577ba957da835df45d8a31052a4c8a12c7db2373ad8b96ed0b7a86072de20b6c2772b3e56c
7
+ data.tar.gz: dae840d8c7d5f3c86af8f959ba07b5310f6e852e351b84c42166621e181de41604fb1d43be6ffe1c651002840f37dcc3b16eebadf6c9beed90d1c46e9f693aa5
@@ -0,0 +1,9 @@
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"
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,6 +2,11 @@ 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:
6
11
  Exclude:
7
12
  - '*.gemspec'
@@ -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,72 @@
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-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
- Style/Documentation:
10
- # Silence this check for now until we fix it.
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
- - 'test/**/*'
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
@@ -1,22 +1,21 @@
1
1
  language: ruby
2
2
 
3
- sudo: false
4
-
5
3
  rvm:
6
- - 2.1
7
- - 2.2
8
- - 2.3
9
4
  - 2.4
10
5
  - 2.5
6
+ - 2.6
7
+ - 2.7
8
+ - 3.0
9
+ - ruby-head
10
+
11
+ matrix:
12
+ allow_failures:
13
+ - rvm: ruby-head
11
14
 
12
15
  env:
13
16
  - COVERALL=1
14
17
 
15
- before_install:
16
- - rvm get latest
17
- - gem update --system
18
- - gem install bundler
19
-
20
18
  notifications:
19
+ email: false
21
20
  slack:
22
21
  secure: "N9zPR5jnF1TBiqvb3mCV6Wem3TIvqu4tXiob2P66vBMwmj1ewWvyUzNLwAEOCDc3mRfsI50IYXHewckAUpCWW7XEJlT/pv8llMsoiHqArb7SGJyDdy3ZRr35L7glixs/ikod+xhRKXMM3jML/2MgSa+Culzhl42tMUFDk+bBBQU="
data/CHANGELOG.md CHANGED
@@ -2,8 +2,38 @@
2
2
 
3
3
  This project uses [Semantic Versioning 2.0.0](http://semver.org/).
4
4
 
5
+ ## main
5
6
 
6
- ### 4.5.0
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
+
15
+ ## 5.2.0
16
+
17
+ - CHANGED: `Certificate#expires_on` (date only) is deprecated in favor of `Certificate#expires_at` (timestamp). (dnsimple/dnsimple-ruby#190)
18
+
19
+ ## 5.1.0
20
+
21
+ - CHANGED: `Domain#expires_on` (date only) is deprecated in favor of `Domain#expires_at` (timestamp). (dnsimple/dnsimple-ruby#186)
22
+
23
+ ## 5.0.0
24
+
25
+ - CHANGED: Minimum Ruby version is now 2.4
26
+ - CHANGED: User-agent format has been changed to prepend custom token before default token.
27
+ - NEW: Added `registrar.get_domain_transfer` to retrieve a domain transfer. (dnsimple/dnsimple-ruby#180)
28
+ - NEW: Added `registrar.cancel_domain_transfer` to cancel an in progress domain transfer. (dnsimple/dnsimple-ruby#180)
29
+ - NEW: Added `DomainTransfer#status_description` attribute to identify the failure reason of a transfer. (dnsimple/dnsimple-ruby#180).
30
+
31
+ ## 4.6.0
32
+
33
+ - NEW: Added WHOIS privacy renewal (GH-171)
34
+
35
+
36
+ ## 4.5.0
7
37
 
8
38
  - NEW: Added zone distribution and zone record distribution (GH-160)
9
39
 
@@ -14,26 +44,26 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
14
44
  - 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.
15
45
 
16
46
 
17
- #### 4.4.0
47
+ ## 4.4.0
18
48
 
19
49
  - NEW: Added Let's Encrypt certificate methods (GH-159)
20
50
 
21
51
  - 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.
22
52
 
23
53
 
24
- #### 4.3.0
54
+ ## 4.3.0
25
55
 
26
56
  - NEW: Added `certificates.all_certificates` (dnsimple/dnsimple-ruby#155)
27
57
 
28
58
  - CHANGED: Updated registrar URLs (dnsimple/dnsimple-ruby#153)
29
59
 
30
60
 
31
- #### 4.2.0
61
+ ## 4.2.0
32
62
 
33
63
  - NEW: Added DNSSEC support support (dnsimple/dnsimple-ruby#152)
34
64
 
35
65
 
36
- #### 4.1.0
66
+ ## 4.1.0
37
67
 
38
68
  - NEW: Added domain premium price support (dnsimple/dnsimple-ruby#143)
39
69
 
@@ -41,7 +71,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
41
71
  - CHANGED: Normalize unique string identifiers to SID (dnsimple/dnsimple-ruby#141)
42
72
 
43
73
 
44
- #### 4.0.0
74
+ ## 4.0.0
45
75
 
46
76
  - NEW: Added domain collaborators support (GH-137).
47
77
  - NEW: Added regions support for zone records (GH-135, GH-139).
@@ -58,7 +88,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
58
88
  - CHANGED: Renamed registrar `auth_info` into `auth_code` (GH-136).
59
89
 
60
90
 
61
- #### 3.1.0
91
+ ## 3.1.0
62
92
 
63
93
  - NEW: Added accounts support (GH-113).
64
94
  - NEW: Added sorting and filtering support (GH-112).
@@ -72,9 +102,9 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
72
102
  - REMOVED: Removed support for wildcard accounts (GH-107).
73
103
 
74
104
 
75
- #### 3.0.0
105
+ ## 3.0.0
76
106
 
77
- ##### stable
107
+ ### stable
78
108
 
79
109
  - FIXED: The client was using the wrong key to store the ContactsService which could cause conflicts with the DomainsService.
80
110
 
@@ -88,13 +118,13 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
88
118
 
89
119
  - 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).
90
120
 
91
- ##### beta2
121
+ ### beta2
92
122
 
93
123
  - FIXED: `state` and `redirect_uri` are not properly passed in the request to exchang the code for an access token (GH-89, GH-90).
94
124
 
95
125
  - FIXED: Request body is not properly serialized to JSON, and the "Content-Type" header was omissed (GH-91).
96
126
 
97
- ##### beta1
127
+ ### beta1
98
128
 
99
129
  - CHANGED: Minimum Ruby version >= 2
100
130
 
@@ -104,15 +134,15 @@ The client has been completely redesigned to support the [API v2](https://develo
104
134
 
105
135
  Internal changes were made to match conventions adopted in other clients, such as the Go one and the Elixir one.
106
136
 
107
- #### 2.1.1
137
+ ## 2.1.1
108
138
 
109
139
  - FIXED: Paths may mistakenly be generated use \ on windows.
110
140
 
111
- #### 2.1.0
141
+ ## 2.1.0
112
142
 
113
143
  - NEW: Add the ability to set headers and pass extra connection params in each API method (GH-64)
114
144
 
115
- #### 2.0.0
145
+ ## 2.0.0
116
146
 
117
147
  **2.0.0.alpha**
118
148
 
@@ -124,7 +154,7 @@ Internal changes were made to match conventions adopted in other clients, such a
124
154
 
125
155
  - CHANGED: Drop 1.8.7, 1.9.2 support. Required Ruby >= 1.9.3.
126
156
 
127
- - 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)
157
+ - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [dnsimple-ruby-cli](https://github.com/dnsimple/dnsimple-ruby-cli)
128
158
 
129
159
  - CHANGED: Renamed the Gem from "dnsimple-ruby" to "dnsimple" (GH-23).
130
160
 
@@ -136,23 +166,23 @@ Internal changes were made to match conventions adopted in other clients, such a
136
166
 
137
167
  - FIXED: Fixed a bug where API token environment variables were not properly detected (GH-59, GH-62). Thanks @oguzbilgic and @rupurt.
138
168
 
139
- #### Release 1.7.1
169
+ ## Release 1.7.1
140
170
 
141
171
  - FIXED: Updated Certificate to match the serialized attributes (GH-53).
142
172
 
143
- #### Release 1.7.0
173
+ ## Release 1.7.0
144
174
 
145
175
  - NEW: Add support for Domain-based authentication (GH-40, GH-46). Thanks @dwradcliffe and @samsonasu.
146
176
 
147
- #### Release 1.6.0
177
+ ## Release 1.6.0
148
178
 
149
179
  - NEW: Add support for 2FA (GH-44)
150
180
 
151
- #### Release 1.5.5
181
+ ## Release 1.5.5
152
182
 
153
183
  - NEW: Add notice about the CLI moving to a new location
154
184
 
155
- #### Release 1.5.4
185
+ ## Release 1.5.4
156
186
 
157
187
  - NEW: Added domain#expires_on attribute (GH-34). Thanks @alkema
158
188
 
@@ -162,23 +192,23 @@ Internal changes were made to match conventions adopted in other clients, such a
162
192
 
163
193
  - CHANGED: User.me now uses the correct patch for API v1.
164
194
 
165
- #### Release 1.5.3
195
+ ## Release 1.5.3
166
196
 
167
197
  - FIXED: In some cases the client crashed with NoMethodError VERSION (GH-35).
168
198
 
169
- #### Release 1.5.2
199
+ ## Release 1.5.2
170
200
 
171
201
  - NEW: Provide a meaningful user-agent.
172
202
 
173
- #### Release 1.5.1
203
+ ## Release 1.5.1
174
204
 
175
205
  - FIXED: Invalid base URI.
176
206
 
177
- #### Release 1.5.0
207
+ ## Release 1.5.0
178
208
 
179
209
  - CHANGED: Added support for versioned API (GH-33)
180
210
 
181
- #### Release 1.4.0
211
+ ## Release 1.4.0
182
212
 
183
213
  - CHANGED: Normalized exception handling. No more RuntimeError.
184
214
  In case of request error, the client raises RequestError, RecordExists or RecodNotFound