dnsimple 4.4.0 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop_dnsimple.yml +34 -2
  3. data/.travis.yml +5 -1
  4. data/CHANGELOG.md +11 -0
  5. data/CONTRIBUTING.md +12 -7
  6. data/README.md +1 -2
  7. data/dnsimple.gemspec +1 -1
  8. data/lib/dnsimple/client.rb +1 -1
  9. data/lib/dnsimple/client/accounts.rb +0 -1
  10. data/lib/dnsimple/client/certificates.rb +1 -0
  11. data/lib/dnsimple/client/clients.rb +4 -2
  12. data/lib/dnsimple/client/contacts.rb +0 -5
  13. data/lib/dnsimple/client/domains.rb +0 -4
  14. data/lib/dnsimple/client/{collaborators.rb → domains_collaborators.rb} +1 -1
  15. data/lib/dnsimple/client/registrar_delegation.rb +4 -4
  16. data/lib/dnsimple/client/services.rb +0 -2
  17. data/lib/dnsimple/client/tlds.rb +14 -17
  18. data/lib/dnsimple/client/webhooks.rb +0 -3
  19. data/lib/dnsimple/client/zones.rb +0 -1
  20. data/lib/dnsimple/client/zones_distributions.rb +47 -0
  21. data/lib/dnsimple/client/zones_records.rb +23 -28
  22. data/lib/dnsimple/struct.rb +2 -0
  23. data/lib/dnsimple/struct/vanity_name_server.rb +25 -0
  24. data/lib/dnsimple/struct/zone_distribution.rb +11 -0
  25. data/lib/dnsimple/version.rb +1 -1
  26. data/spec/dnsimple/client/{collaborators_spec.rb → domains_collaborators_spec.rb} +0 -0
  27. data/spec/dnsimple/client/registrar_delegation_spec.rb +3 -2
  28. data/spec/dnsimple/client/tlds_spec.rb +13 -12
  29. data/spec/dnsimple/client/zones_distributions_spec.rb +135 -0
  30. data/spec/dnsimple/client/zones_records_spec.rb +33 -33
  31. data/spec/dnsimple/client_spec.rb +5 -5
  32. data/spec/fixtures.http/checkZoneDistribution/error.http +21 -0
  33. data/spec/fixtures.http/checkZoneDistribution/failure.http +21 -0
  34. data/spec/fixtures.http/checkZoneDistribution/success.http +21 -0
  35. data/spec/fixtures.http/checkZoneRecordDistribution/error.http +21 -0
  36. data/spec/fixtures.http/checkZoneRecordDistribution/failure.http +21 -0
  37. data/spec/fixtures.http/checkZoneRecordDistribution/success.http +21 -0
  38. data/spec/spec_helper.rb +1 -1
  39. metadata +24 -7
@@ -5,7 +5,7 @@ describe Dnsimple::Client, ".zones" do
5
5
  subject { described_class.new(base_url: "https://api.dnsimple.test", access_token: "a1b2c3").zones }
6
6
 
7
7
 
8
- describe "#records" do
8
+ describe "#list_zone_records" do
9
9
  let(:account_id) { 1010 }
10
10
  let(:zone_id) { "example.com" }
11
11
 
@@ -15,38 +15,38 @@ describe Dnsimple::Client, ".zones" do
15
15
  end
16
16
 
17
17
  it "builds the correct request" do
18
- subject.records(account_id, zone_id)
18
+ subject.list_zone_records(account_id, zone_id)
19
19
 
20
20
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records")
21
21
  .with(headers: { 'Accept' => 'application/json' })
22
22
  end
23
23
 
24
24
  it "supports pagination" do
25
- subject.records(account_id, zone_id, page: 2)
25
+ subject.list_zone_records(account_id, zone_id, page: 2)
26
26
 
27
27
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records?page=2")
28
28
  end
29
29
 
30
30
  it "supports extra request options" do
31
- subject.records(account_id, zone_id, query: { foo: "bar" })
31
+ subject.list_zone_records(account_id, zone_id, query: { foo: "bar" })
32
32
 
33
33
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records?foo=bar")
34
34
  end
35
35
 
36
36
  it "supports sorting" do
37
- subject.records(account_id, zone_id, sort: "type:asc")
37
+ subject.list_zone_records(account_id, zone_id, sort: "type:asc")
38
38
 
39
39
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records?sort=type:asc")
40
40
  end
41
41
 
42
42
  it "supports filtering" do
43
- subject.records(account_id, zone_id, filter: { type: "A" })
43
+ subject.list_zone_records(account_id, zone_id, filter: { type: "A" })
44
44
 
45
45
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records?type=A")
46
46
  end
47
47
 
48
48
  it "returns the records" do
49
- response = subject.records(account_id, zone_id)
49
+ response = subject.list_zone_records(account_id, zone_id)
50
50
 
51
51
  expect(response).to be_a(Dnsimple::PaginatedResponse)
52
52
  expect(response.data).to be_a(Array)
@@ -60,7 +60,7 @@ describe Dnsimple::Client, ".zones" do
60
60
  end
61
61
 
62
62
  it "exposes the pagination information" do
63
- response = subject.records(account_id, zone_id)
63
+ response = subject.list_zone_records(account_id, zone_id)
64
64
 
65
65
  expect(response.respond_to?(:page)).to be(true)
66
66
  expect(response.page).to eq(1)
@@ -75,13 +75,13 @@ describe Dnsimple::Client, ".zones" do
75
75
  .to_return(read_http_fixture("notfound-zone.http"))
76
76
 
77
77
  expect {
78
- subject.records(account_id, zone_id)
78
+ subject.list_zone_records(account_id, zone_id)
79
79
  }.to raise_error(Dnsimple::NotFoundError)
80
80
  end
81
81
  end
82
82
  end
83
83
 
84
- describe "#all_records" do
84
+ describe "#all_zone_records" do
85
85
  before do
86
86
  stub_request(:get, %r{/v2/#{account_id}/zones/#{zone_id}/records})
87
87
  .to_return(read_http_fixture("listZoneRecords/success.http"))
@@ -91,24 +91,24 @@ describe Dnsimple::Client, ".zones" do
91
91
  let(:zone_id) { "example.com" }
92
92
 
93
93
  it "delegates to client.paginate" do
94
- expect(subject).to receive(:paginate).with(:records, account_id, zone_id, foo: "bar")
95
- subject.all_records(account_id, zone_id, foo: "bar")
94
+ expect(subject).to receive(:paginate).with(:list_zone_records, account_id, zone_id, foo: "bar")
95
+ subject.all_zone_records(account_id, zone_id, foo: "bar")
96
96
  end
97
97
 
98
98
  it "supports sorting" do
99
- subject.all_records(account_id, zone_id, sort: "type:asc")
99
+ subject.all_zone_records(account_id, zone_id, sort: "type:asc")
100
100
 
101
101
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records?page=1&per_page=100&sort=type:asc")
102
102
  end
103
103
 
104
104
  it "supports filtering" do
105
- subject.all_records(account_id, zone_id, filter: { name: "foo", type: "AAAA" })
105
+ subject.all_zone_records(account_id, zone_id, filter: { name: "foo", type: "AAAA" })
106
106
 
107
107
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records?page=1&per_page=100&name=foo&type=AAAA")
108
108
  end
109
109
  end
110
110
 
111
- describe "#create_record" do
111
+ describe "#create_zone_record" do
112
112
  let(:account_id) { 1010 }
113
113
  let(:zone_id) { "example.com" }
114
114
 
@@ -120,7 +120,7 @@ describe Dnsimple::Client, ".zones" do
120
120
  let(:attributes) { { type: "A", name: "www", content: "127.0.0.1", regions: %w(global) } }
121
121
 
122
122
  it "builds the correct request" do
123
- subject.create_record(account_id, zone_id, attributes)
123
+ subject.create_zone_record(account_id, zone_id, attributes)
124
124
 
125
125
  expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records")
126
126
  .with(body: attributes)
@@ -128,7 +128,7 @@ describe Dnsimple::Client, ".zones" do
128
128
  end
129
129
 
130
130
  it "returns the record" do
131
- response = subject.create_record(account_id, zone_id, attributes)
131
+ response = subject.create_zone_record(account_id, zone_id, attributes)
132
132
  expect(response).to be_a(Dnsimple::Response)
133
133
 
134
134
  result = response.data
@@ -146,13 +146,13 @@ describe Dnsimple::Client, ".zones" do
146
146
  .to_return(read_http_fixture("notfound-zone.http"))
147
147
 
148
148
  expect {
149
- subject.create_record(account_id, zone_id, attributes)
149
+ subject.create_zone_record(account_id, zone_id, attributes)
150
150
  }.to raise_error(Dnsimple::NotFoundError)
151
151
  end
152
152
  end
153
153
  end
154
154
 
155
- describe "#record" do
155
+ describe "#zone_record" do
156
156
  let(:account_id) { 1010 }
157
157
  let(:zone_id) { "example.com" }
158
158
  let(:record_id) { 5 }
@@ -163,14 +163,14 @@ describe Dnsimple::Client, ".zones" do
163
163
  end
164
164
 
165
165
  it "builds the correct request" do
166
- subject.record(account_id, zone_id, record_id)
166
+ subject.zone_record(account_id, zone_id, record_id)
167
167
 
168
168
  expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records/#{record_id}")
169
169
  .with(headers: { 'Accept' => 'application/json' })
170
170
  end
171
171
 
172
172
  it "returns the record" do
173
- response = subject.record(account_id, zone_id, record_id)
173
+ response = subject.zone_record(account_id, zone_id, record_id)
174
174
  expect(response).to be_a(Dnsimple::Response)
175
175
 
176
176
  result = response.data
@@ -195,7 +195,7 @@ describe Dnsimple::Client, ".zones" do
195
195
  .to_return(read_http_fixture("notfound-zone.http"))
196
196
 
197
197
  expect {
198
- subject.record(account_id, zone_id, "0")
198
+ subject.zone_record(account_id, zone_id, "0")
199
199
  }.to raise_error(Dnsimple::NotFoundError)
200
200
  end
201
201
  end
@@ -206,13 +206,13 @@ describe Dnsimple::Client, ".zones" do
206
206
  .to_return(read_http_fixture("notfound-record.http"))
207
207
 
208
208
  expect {
209
- subject.record(account_id, zone_id, "0")
209
+ subject.zone_record(account_id, zone_id, "0")
210
210
  }.to raise_error(Dnsimple::NotFoundError)
211
211
  end
212
212
  end
213
213
  end
214
214
 
215
- describe "#update_record" do
215
+ describe "#update_zone_record" do
216
216
  let(:account_id) { 1010 }
217
217
  let(:zone_id) { "example.com" }
218
218
  let(:record_id) { 5 }
@@ -225,7 +225,7 @@ describe Dnsimple::Client, ".zones" do
225
225
  let(:attributes) { { content: "mxb.example.com", priority: "20", regions: ['global'] } }
226
226
 
227
227
  it "builds the correct request" do
228
- subject.update_record(account_id, zone_id, record_id, attributes)
228
+ subject.update_zone_record(account_id, zone_id, record_id, attributes)
229
229
 
230
230
  expect(WebMock).to have_requested(:patch, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records/#{record_id}")
231
231
  .with(body: attributes)
@@ -233,7 +233,7 @@ describe Dnsimple::Client, ".zones" do
233
233
  end
234
234
 
235
235
  it "returns the record" do
236
- response = subject.update_record(account_id, zone_id, record_id, attributes)
236
+ response = subject.update_zone_record(account_id, zone_id, record_id, attributes)
237
237
  expect(response).to be_a(Dnsimple::Response)
238
238
 
239
239
  result = response.data
@@ -250,7 +250,7 @@ describe Dnsimple::Client, ".zones" do
250
250
  .to_return(read_http_fixture("notfound-zone.http"))
251
251
 
252
252
  expect {
253
- subject.update_record(account_id, zone_id, "0", {})
253
+ subject.update_zone_record(account_id, zone_id, "0", {})
254
254
  }.to raise_error(Dnsimple::NotFoundError)
255
255
  end
256
256
  end
@@ -261,13 +261,13 @@ describe Dnsimple::Client, ".zones" do
261
261
  .to_return(read_http_fixture("notfound-record.http"))
262
262
 
263
263
  expect {
264
- subject.update_record(account_id, zone_id, "0", {})
264
+ subject.update_zone_record(account_id, zone_id, "0", {})
265
265
  }.to raise_error(Dnsimple::NotFoundError)
266
266
  end
267
267
  end
268
268
  end
269
269
 
270
- describe "#delete_record" do
270
+ describe "#delete_zone_record" do
271
271
  let(:account_id) { 1010 }
272
272
  let(:zone_id) { "example.com" }
273
273
 
@@ -277,14 +277,14 @@ describe Dnsimple::Client, ".zones" do
277
277
  end
278
278
 
279
279
  it "builds the correct request" do
280
- subject.delete_record(account_id, zone_id, record_id = 2)
280
+ subject.delete_zone_record(account_id, zone_id, record_id = 2)
281
281
 
282
282
  expect(WebMock).to have_requested(:delete, "https://api.dnsimple.test/v2/#{account_id}/zones/#{zone_id}/records/#{record_id}")
283
283
  .with(headers: { 'Accept' => 'application/json' })
284
284
  end
285
285
 
286
286
  it "returns nothing" do
287
- response = subject.delete_record(account_id, zone_id, 2)
287
+ response = subject.delete_zone_record(account_id, zone_id, 2)
288
288
  expect(response).to be_a(Dnsimple::Response)
289
289
 
290
290
  result = response.data
@@ -297,7 +297,7 @@ describe Dnsimple::Client, ".zones" do
297
297
  .to_return(read_http_fixture("notfound-zone.http"))
298
298
 
299
299
  expect {
300
- subject.delete_record(account_id, zone_id, "0")
300
+ subject.delete_zone_record(account_id, zone_id, "0")
301
301
  }.to raise_error(Dnsimple::NotFoundError)
302
302
  end
303
303
  end
@@ -308,7 +308,7 @@ describe Dnsimple::Client, ".zones" do
308
308
  .to_return(read_http_fixture("notfound-record.http"))
309
309
 
310
310
  expect {
311
- subject.delete_record(account_id, zone_id, "0")
311
+ subject.delete_zone_record(account_id, zone_id, "0")
312
312
  }.to raise_error(Dnsimple::NotFoundError)
313
313
  end
314
314
  end
@@ -130,7 +130,7 @@ describe Dnsimple::Client do
130
130
  format: :json,
131
131
  basic_auth: { username: "user", password: "pass" },
132
132
  headers: { 'Accept' => 'application/json', 'User-Agent' => Dnsimple::Default::USER_AGENT }
133
- )
133
+ )
134
134
  .and_return(double('response', code: 200))
135
135
 
136
136
  subject.request(:get, 'foo')
@@ -145,7 +145,7 @@ describe Dnsimple::Client do
145
145
  query: { foo: "bar" },
146
146
  basic_auth: { username: "user", password: "pass" },
147
147
  headers: { 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'User-Agent' => Dnsimple::Default::USER_AGENT, "Custom" => "Header" }
148
- )
148
+ )
149
149
  .and_return(double('response', code: 200))
150
150
 
151
151
  subject.request(:put, 'foo', { something: "else" }, { query: { foo: "bar" }, headers: { "Custom" => "Header" } })
@@ -159,7 +159,7 @@ describe Dnsimple::Client do
159
159
  body: { something: "else" },
160
160
  basic_auth: { username: "user", password: "pass" },
161
161
  headers: { 'Accept' => 'application/json', 'Content-Type' => 'application/x-www-form-urlencoded', 'User-Agent' => Dnsimple::Default::USER_AGENT }
162
- )
162
+ )
163
163
  .and_return(double('response', code: 200))
164
164
 
165
165
  subject.request(:post, 'foo', { something: "else" }, { headers: { "Content-Type" => "application/x-www-form-urlencoded" } })
@@ -173,7 +173,7 @@ describe Dnsimple::Client do
173
173
  http_proxyaddr: "example-proxy.com",
174
174
  http_proxyport: "4321",
175
175
  headers: { 'Accept' => 'application/json', 'User-Agent' => Dnsimple::Default::USER_AGENT }
176
- )
176
+ )
177
177
  .and_return(double('response', code: 200))
178
178
 
179
179
  subject = described_class.new(proxy: "example-proxy.com:4321")
@@ -186,7 +186,7 @@ describe Dnsimple::Client do
186
186
  "#{subject.base_url}test",
187
187
  format: :json,
188
188
  headers: hash_including("User-Agent" => "#{Dnsimple::Default::USER_AGENT} customAgent")
189
- )
189
+ )
190
190
  .and_return(double("response", code: 200))
191
191
 
192
192
  subject = described_class.new(user_agent: "customAgent")
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 504 Gateway Timeout
2
+ Server: nginx
3
+ Date: Mon, 30 Oct 2017 09:09:41 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: keep-alive
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2399
9
+ X-RateLimit-Reset: 1509358181
10
+ ETag: W/"10fc650d019e6bffa876f08bce8f3380"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: 91f124fc-671d-40fa-877b-0b222692f623
13
+ X-Runtime: 0.471005
14
+ X-Content-Type-Options: nosniff
15
+ X-Download-Options: noopen
16
+ X-Frame-Options: DENY
17
+ X-Permitted-Cross-Domain-Policies: none
18
+ X-XSS-Protection: 1; mode=block
19
+ Strict-Transport-Security: max-age=31536000
20
+
21
+ {"message":"Could not query zone, connection timed out"}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 30 Oct 2017 09:09:41 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: keep-alive
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2399
9
+ X-RateLimit-Reset: 1509358181
10
+ ETag: W/"10fc650d019e6bffa876f08bce8f3380"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: 91f124fc-671d-40fa-877b-0b222692f623
13
+ X-Runtime: 0.471005
14
+ X-Content-Type-Options: nosniff
15
+ X-Download-Options: noopen
16
+ X-Frame-Options: DENY
17
+ X-Permitted-Cross-Domain-Policies: none
18
+ X-XSS-Protection: 1; mode=block
19
+ Strict-Transport-Security: max-age=31536000
20
+
21
+ {"data":{"distributed":false}}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 30 Oct 2017 09:09:41 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: keep-alive
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2399
9
+ X-RateLimit-Reset: 1509358181
10
+ ETag: W/"10fc650d019e6bffa876f08bce8f3380"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: 91f124fc-671d-40fa-877b-0b222692f623
13
+ X-Runtime: 0.471005
14
+ X-Content-Type-Options: nosniff
15
+ X-Download-Options: noopen
16
+ X-Frame-Options: DENY
17
+ X-Permitted-Cross-Domain-Policies: none
18
+ X-XSS-Protection: 1; mode=block
19
+ Strict-Transport-Security: max-age=31536000
20
+
21
+ {"data":{"distributed":true}}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 504 Gateway Timeout
2
+ Server: nginx
3
+ Date: Mon, 18 Dec 2017 10:54:48 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: keep-alive
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2397
9
+ X-RateLimit-Reset: 1513597686
10
+ ETag: W/"10fc650d019e6bffa876f08bce8f3380"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: 74059b13-9262-4e2d-b8ff-a833376dce19
13
+ X-Runtime: 0.408180
14
+ X-Content-Type-Options: nosniff
15
+ X-Download-Options: noopen
16
+ X-Frame-Options: DENY
17
+ X-Permitted-Cross-Domain-Policies: none
18
+ X-XSS-Protection: 1; mode=block
19
+ Strict-Transport-Security: max-age=31536000
20
+
21
+ {"message":"Could not query zone, connection timed out"}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 18 Dec 2017 10:54:13 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: keep-alive
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2398
9
+ X-RateLimit-Reset: 1513597686
10
+ ETag: W/"10fc650d019e6bffa876f08bce8f3380"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: f5a86610-0e22-4047-a27c-350769eaa6d5
13
+ X-Runtime: 0.425440
14
+ X-Content-Type-Options: nosniff
15
+ X-Download-Options: noopen
16
+ X-Frame-Options: DENY
17
+ X-Permitted-Cross-Domain-Policies: none
18
+ X-XSS-Protection: 1; mode=block
19
+ Strict-Transport-Security: max-age=31536000
20
+
21
+ {"data":{"distributed":false}}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 18 Dec 2017 10:48:06 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: keep-alive
7
+ X-RateLimit-Limit: 2400
8
+ X-RateLimit-Remaining: 2399
9
+ X-RateLimit-Reset: 1513597686
10
+ ETag: W/"10fc650d019e6bffa876f08bce8f3380"
11
+ Cache-Control: max-age=0, private, must-revalidate
12
+ X-Request-Id: 34c69751-ffee-4856-ac28-ead4f3a66e18
13
+ X-Runtime: 0.438473
14
+ X-Content-Type-Options: nosniff
15
+ X-Download-Options: noopen
16
+ X-Frame-Options: DENY
17
+ X-Permitted-Cross-Domain-Policies: none
18
+ X-XSS-Protection: 1; mode=block
19
+ Strict-Transport-Security: max-age=31536000
20
+
21
+ {"data":{"distributed":true}}
@@ -9,7 +9,7 @@ $:.unshift(File.dirname(__FILE__) + '/lib')
9
9
  require 'dnsimple'
10
10
 
11
11
  unless defined?(SPEC_ROOT)
12
- SPEC_ROOT = File.expand_path("../", __FILE__)
12
+ SPEC_ROOT = File.expand_path(__dir__)
13
13
  end
14
14
 
15
15
  Dir[File.join(SPEC_ROOT, "support/**/*.rb")].each { |f| require f }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsimple
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Eden
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-01-23 00:00:00.000000000 Z
14
+ date: 2018-10-16 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty
@@ -114,9 +114,9 @@ files:
114
114
  - lib/dnsimple/client/accounts.rb
115
115
  - lib/dnsimple/client/certificates.rb
116
116
  - lib/dnsimple/client/clients.rb
117
- - lib/dnsimple/client/collaborators.rb
118
117
  - lib/dnsimple/client/contacts.rb
119
118
  - lib/dnsimple/client/domains.rb
119
+ - lib/dnsimple/client/domains_collaborators.rb
120
120
  - lib/dnsimple/client/domains_delegation_signer_records.rb
121
121
  - lib/dnsimple/client/domains_dnssec.rb
122
122
  - lib/dnsimple/client/domains_email_forwards.rb
@@ -136,6 +136,7 @@ files:
136
136
  - lib/dnsimple/client/vanity_name_servers.rb
137
137
  - lib/dnsimple/client/webhooks.rb
138
138
  - lib/dnsimple/client/zones.rb
139
+ - lib/dnsimple/client/zones_distributions.rb
139
140
  - lib/dnsimple/client/zones_records.rb
140
141
  - lib/dnsimple/default.rb
141
142
  - lib/dnsimple/error.rb
@@ -167,18 +168,20 @@ files:
167
168
  - lib/dnsimple/struct/template_record.rb
168
169
  - lib/dnsimple/struct/tld.rb
169
170
  - lib/dnsimple/struct/user.rb
171
+ - lib/dnsimple/struct/vanity_name_server.rb
170
172
  - lib/dnsimple/struct/webhook.rb
171
173
  - lib/dnsimple/struct/whoami.rb
172
174
  - lib/dnsimple/struct/whois_privacy.rb
173
175
  - lib/dnsimple/struct/zone.rb
176
+ - lib/dnsimple/struct/zone_distribution.rb
174
177
  - lib/dnsimple/struct/zone_file.rb
175
178
  - lib/dnsimple/struct/zone_record.rb
176
179
  - lib/dnsimple/version.rb
177
180
  - spec/dnsimple/client/accounts_spec.rb
178
181
  - spec/dnsimple/client/certificates_spec.rb
179
182
  - spec/dnsimple/client/client_service_spec.rb
180
- - spec/dnsimple/client/collaborators_spec.rb
181
183
  - spec/dnsimple/client/contacts_spec.rb
184
+ - spec/dnsimple/client/domains_collaborators_spec.rb
182
185
  - spec/dnsimple/client/domains_delegation_signer_records_spec.rb
183
186
  - spec/dnsimple/client/domains_dnssec_spec.rb
184
187
  - spec/dnsimple/client/domains_email_forwards_spec.rb
@@ -198,6 +201,7 @@ files:
198
201
  - spec/dnsimple/client/tlds_spec.rb
199
202
  - spec/dnsimple/client/vanity_name_servers_spec.rb
200
203
  - spec/dnsimple/client/webhooks_spec.rb
204
+ - spec/dnsimple/client/zones_distributions_spec.rb
201
205
  - spec/dnsimple/client/zones_records_spec.rb
202
206
  - spec/dnsimple/client/zones_spec.rb
203
207
  - spec/dnsimple/client_spec.rb
@@ -218,6 +222,12 @@ files:
218
222
  - spec/fixtures.http/changeDomainDelegationFromVanity/success.http
219
223
  - spec/fixtures.http/changeDomainDelegationToVanity/success.http
220
224
  - spec/fixtures.http/checkDomain/success.http
225
+ - spec/fixtures.http/checkZoneDistribution/error.http
226
+ - spec/fixtures.http/checkZoneDistribution/failure.http
227
+ - spec/fixtures.http/checkZoneDistribution/success.http
228
+ - spec/fixtures.http/checkZoneRecordDistribution/error.http
229
+ - spec/fixtures.http/checkZoneRecordDistribution/failure.http
230
+ - spec/fixtures.http/checkZoneRecordDistribution/success.http
221
231
  - spec/fixtures.http/createContact/created.http
222
232
  - spec/fixtures.http/createDelegationSignerRecord/created.http
223
233
  - spec/fixtures.http/createDelegationSignerRecord/validation-error.http
@@ -342,7 +352,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
342
352
  requirements:
343
353
  - - ">="
344
354
  - !ruby/object:Gem::Version
345
- version: '2.0'
355
+ version: '2.1'
346
356
  required_rubygems_version: !ruby/object:Gem::Requirement
347
357
  requirements:
348
358
  - - ">="
@@ -350,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
360
  version: '0'
351
361
  requirements: []
352
362
  rubyforge_project:
353
- rubygems_version: 2.6.13
363
+ rubygems_version: 2.7.7
354
364
  signing_key:
355
365
  specification_version: 4
356
366
  summary: The DNSimple API client for Ruby
@@ -358,8 +368,8 @@ test_files:
358
368
  - spec/dnsimple/client/accounts_spec.rb
359
369
  - spec/dnsimple/client/certificates_spec.rb
360
370
  - spec/dnsimple/client/client_service_spec.rb
361
- - spec/dnsimple/client/collaborators_spec.rb
362
371
  - spec/dnsimple/client/contacts_spec.rb
372
+ - spec/dnsimple/client/domains_collaborators_spec.rb
363
373
  - spec/dnsimple/client/domains_delegation_signer_records_spec.rb
364
374
  - spec/dnsimple/client/domains_dnssec_spec.rb
365
375
  - spec/dnsimple/client/domains_email_forwards_spec.rb
@@ -379,6 +389,7 @@ test_files:
379
389
  - spec/dnsimple/client/tlds_spec.rb
380
390
  - spec/dnsimple/client/vanity_name_servers_spec.rb
381
391
  - spec/dnsimple/client/webhooks_spec.rb
392
+ - spec/dnsimple/client/zones_distributions_spec.rb
382
393
  - spec/dnsimple/client/zones_records_spec.rb
383
394
  - spec/dnsimple/client/zones_spec.rb
384
395
  - spec/dnsimple/client_spec.rb
@@ -399,6 +410,12 @@ test_files:
399
410
  - spec/fixtures.http/changeDomainDelegationFromVanity/success.http
400
411
  - spec/fixtures.http/changeDomainDelegationToVanity/success.http
401
412
  - spec/fixtures.http/checkDomain/success.http
413
+ - spec/fixtures.http/checkZoneDistribution/error.http
414
+ - spec/fixtures.http/checkZoneDistribution/failure.http
415
+ - spec/fixtures.http/checkZoneDistribution/success.http
416
+ - spec/fixtures.http/checkZoneRecordDistribution/error.http
417
+ - spec/fixtures.http/checkZoneRecordDistribution/failure.http
418
+ - spec/fixtures.http/checkZoneRecordDistribution/success.http
402
419
  - spec/fixtures.http/createContact/created.http
403
420
  - spec/fixtures.http/createDelegationSignerRecord/created.http
404
421
  - spec/fixtures.http/createDelegationSignerRecord/validation-error.http