dnsimple 4.5.0 → 6.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/.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