dnsimple-ruby 1.5.3 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ad27879fb099047e82b051a9596250121a31ff0
4
- data.tar.gz: 68229fc24b573b38a07287cbe4a4b4a28fa7fe3b
3
+ metadata.gz: db3994814dc041f6beaad3e056c53f08e04d2196
4
+ data.tar.gz: c918040f508a5b9f5ebcfaeb73c362acedf9ca6a
5
5
  SHA512:
6
- metadata.gz: 7b4306b87e3166802180cfaf666c924d9e333907c2edcceaef60c6ae05be344bc2ac3f7d3176b65137e36ae7b8e9ed5336ce190eae0c9318761c17e0fd8d3af0
7
- data.tar.gz: c8b14a479c4aaec4d391864c06583c5ab59ef06a841237dacd2959f85502d981336a6188a4e741e988af43dd0ec432511cf9bf449a546518fe0a743265e1cd71
6
+ metadata.gz: 4b9f2ad01e7e2ac18e6b93c4c4e142a683b74335e30e6b9cf1e630d0b60a004d53813b46135e89b50fb9db5240839e437da912bfb18d7b7fd33d736c19f6a1a2
7
+ data.tar.gz: 040eadb1538de2a61e4fe26317acdd5835261f133fc6cfc282554c4f35d385cd9a332d8efeafb3b6038cec7ae399f08fd45d294786bdf611e9f6cec43ad8269d
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ #### Release 1.5.4
4
+
5
+ - NEW: Added domain#expires_on attribute (GH-34). Thanks @alkema
6
+
7
+ - NEW: Add various missing domain attributes (GH-38). Thanks @nickhammond
8
+
9
+ - NEW: Added support for auto-renewal (GH-36). Thanks @mzuneska
10
+
11
+ - CHANGED: User.me now uses the correct patch for API v1.
12
+
3
13
  #### Release 1.5.3
4
14
 
5
15
  - FIXED: In some cases the client crashed with NoMethodError VERSION (GH-35).
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
@@ -85,7 +85,7 @@ certificate:describe domain.com id # Get a specific cer
85
85
  certificate:purchase domain.com name contact_id # Purchase a certificate
86
86
  certificate:submit domain.com id approver_email # Submit a certificate for processing
87
87
 
88
- Please see the DNSimple documentation at https://dnsimple.com/documentation/api for additional
88
+ Please see the DNSimple documentation at http://developer.dnsimple.com for additional
89
89
  information on the commands that are available to DNSimple customers.
90
90
 
91
91
  EOF
@@ -1,8 +1,8 @@
1
1
  Given /^I have set up my credentials$/ do
2
2
  path = DNSimple::Client.config_path
3
- File.exists?(File.expand_path(path)).should be_true, "Please set up your #{path} file to continue"
3
+ File.exists?(File.expand_path(path)).should be_truthy, "Please set up your #{path} file to continue"
4
4
  credentials = YAML.load(File.new(File.expand_path(path)))
5
- credentials['username'].should_not be_nil, "You must specify a username in your #{path} file"
6
- credentials['password'].should_not be_nil, "You must specify a password in your #{path} file"
7
- credentials['base_uri'].should_not be_nil, "For cucumber to run, you must specify a base_uri in your #{path} file"
5
+ expect(credentials['username']).to_not be_nil, "You must specify a username in your #{path} file"
6
+ expect(credentials['password']).to_not be_nil, "You must specify a password in your #{path} file"
7
+ expect(credentials['base_uri']).to_not be_nil, "For cucumber to run, you must specify a base_uri in your #{path} file"
8
8
  end
@@ -16,6 +16,27 @@ module DNSimple
16
16
  # The current known name server status
17
17
  attr_accessor :name_server_status
18
18
 
19
+ # When the domain is due to expire
20
+ attr_accessor :expires_on
21
+
22
+ # The state of the domain in DNSimple
23
+ attr_accessor :state
24
+
25
+ # ID of the registrant in DNSimple
26
+ attr_accessor :registrant_id
27
+
28
+ # User ID in DNSimple
29
+ attr_accessor :user_id
30
+
31
+ # Is the domain lockable
32
+ attr_accessor :lockable
33
+
34
+ # Is the domain set to autorenew
35
+ attr_accessor :auto_renew
36
+
37
+ # Is the whois information protected
38
+ attr_accessor :whois_protected
39
+
19
40
 
20
41
  # Check the availability of a name
21
42
  def self.check(name, options={})
@@ -97,6 +118,17 @@ module DNSimple
97
118
  end
98
119
  end
99
120
 
121
+ # Enable auto_renew on the domain
122
+ def enable_auto_renew
123
+ return if auto_renew
124
+ auto_renew!(:post)
125
+ end
126
+
127
+ # Disable auto_renew on the domain
128
+ def disable_auto_renew
129
+ return unless auto_renew
130
+ auto_renew!(:delete)
131
+ end
100
132
 
101
133
  # Delete the domain from DNSimple. WARNING: this cannot
102
134
  # be undone.
@@ -114,7 +146,6 @@ module DNSimple
114
146
  DNSimple::Client.post("/v1/domains/#{name}/templates/#{template.id}/apply", options)
115
147
  end
116
148
 
117
- #:nodoc:
118
149
  def resolve_template(template)
119
150
  case template
120
151
  when DNSimple::Template
@@ -169,5 +200,18 @@ module DNSimple
169
200
  end
170
201
  end
171
202
 
203
+
204
+ private
205
+
206
+ def auto_renew!(method)
207
+ response = DNSimple::Client.send(method, "/v1/domains/#{name}/auto_renewal")
208
+ case response.code
209
+ when 200
210
+ self.auto_renew = response['domain']['auto_renew']
211
+ else
212
+ raise RequestError.new("Error setting auto_renew", response)
213
+ end
214
+ end
215
+
172
216
  end
173
217
  end
@@ -12,7 +12,7 @@ module DNSimple
12
12
 
13
13
 
14
14
  def self.me
15
- response = DNSimple::Client.get("/v1/users/me")
15
+ response = DNSimple::Client.get("/v1/user")
16
16
 
17
17
  case response.code
18
18
  when 200
@@ -1,3 +1,3 @@
1
1
  module DNSimple
2
- VERSION = '1.5.3'
2
+ VERSION = '1.5.4'
3
3
  end
@@ -14,8 +14,8 @@ describe DNSimple::Certificate do
14
14
  it "builds the correct request" do
15
15
  described_class.find(domain, "2")
16
16
 
17
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/certificates/2").
18
- with(:headers => { 'Accept' => 'application/json' })
17
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/certificates/2").
18
+ with(:headers => { 'Accept' => 'application/json' })
19
19
  end
20
20
 
21
21
  context "when the certificate exists" do
@@ -91,16 +91,16 @@ describe DNSimple::Client do
91
91
  describe ".base_uri" do
92
92
  it "returns the qualified API uri" do
93
93
  klass.base_uri = "http://api.dnsimple.com"
94
- klass.base_uri.should eq("http://api.dnsimple.com")
94
+ expect(klass.base_uri).to eq("http://api.dnsimple.com")
95
95
  end
96
96
  end
97
97
 
98
98
  describe ".base_uri=" do
99
99
  it "sets the base_uri" do
100
100
  klass.base_uri = "http://api1.dnsimple.com/"
101
- klass.base_uri.should eq("http://api1.dnsimple.com")
101
+ expect(klass.base_uri).to eq("http://api1.dnsimple.com")
102
102
  klass.base_uri = "http://api2.dnsimple.com"
103
- klass.base_uri.should eq("http://api2.dnsimple.com")
103
+ expect(klass.base_uri).to eq("http://api2.dnsimple.com")
104
104
  end
105
105
  end
106
106
 
@@ -11,8 +11,8 @@ describe DNSimple::Contact do
11
11
  it "builds the correct request" do
12
12
  described_class.find("2")
13
13
 
14
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/contacts/2").
15
- with(:headers => { 'Accept' => 'application/json' })
14
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/contacts/2").
15
+ with(:headers => { 'Accept' => 'application/json' })
16
16
  end
17
17
 
18
18
  context "when the contact exists" do
@@ -13,8 +13,8 @@ describe DNSimple::Domain do
13
13
  it "builds the correct request" do
14
14
  described_class.find("example.com")
15
15
 
16
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com").
17
- with(:headers => { 'Accept' => 'application/json' })
16
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com").
17
+ with(:headers => { 'Accept' => 'application/json' })
18
18
  end
19
19
 
20
20
  context "when the domain exists" do
@@ -24,12 +24,110 @@ describe DNSimple::Domain do
24
24
  expect(result).to be_a(described_class)
25
25
  expect(result.id).to eq(6)
26
26
  expect(result.name).to eq("test-1383931357.com")
27
+ expect(result.expires_on).to eq('2015-11-08')
27
28
  expect(result.created_at).to eq("2013-11-08T17:22:48Z")
28
29
  expect(result.updated_at).to eq("2014-01-14T18:27:04Z")
30
+ expect(result.state).to eq("registered")
31
+ expect(result.registrant_id).to eq(2)
32
+ expect(result.user_id).to eq(2)
33
+ expect(result.lockable).to eq(true)
34
+ expect(result.auto_renew).to eq(true)
35
+ expect(result.whois_protected).to eq(false)
29
36
 
30
37
  expect(result.name_server_status).to be_nil
31
38
  end
32
39
  end
33
40
  end
34
41
 
42
+ describe "#enable_auto_renew" do
43
+ let(:domain) { described_class.new(name: 'example.com', auto_renew: false) }
44
+
45
+ context "when response is not 200" do
46
+ before do
47
+ stub_request(:post, %r[/v1/domains/example.com/auto_renewal]).
48
+ to_return(read_fixture("domains/auto_renewal_enable/notfound.http"))
49
+ end
50
+
51
+ it "raises a RequestError" do
52
+ expect { domain.enable_auto_renew }.to raise_error(DNSimple::RequestError)
53
+ end
54
+ end
55
+
56
+ context "when auto_renew is true" do
57
+ let(:domain) { described_class.new(name: 'example.com', auto_renew: true) }
58
+
59
+ it "does not send a web request" do
60
+ domain.enable_auto_renew
61
+ expect(WebMock).to have_not_been_made
62
+ end
63
+ end
64
+
65
+ context "when auto_renew is false" do
66
+ let(:domain) { described_class.new(name: 'example.com', auto_renew: false) }
67
+
68
+ before do
69
+ stub_request(:post, %r[/v1/domains/example.com/auto_renewal]).
70
+ to_return(read_fixture("domains/auto_renewal_enable/success.http"))
71
+ end
72
+
73
+ it "builds the correct request to enable auto_renew" do
74
+ domain.enable_auto_renew
75
+
76
+ expect(WebMock).to have_requested(:post, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/auto_renewal").
77
+ with(:headers => { 'Accept' => 'application/json' })
78
+ end
79
+
80
+ it "sets auto_renew to true on the domain" do
81
+ domain.enable_auto_renew
82
+ expect(domain.auto_renew).to be_truthy
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ describe "#disable_auto_renew" do
89
+ let(:domain) { described_class.new(name: 'example.com', auto_renew: true) }
90
+
91
+ context "when response is not 200" do
92
+ before do
93
+ stub_request(:delete, %r[/v1/domains/example.com/auto_renewal]).
94
+ to_return(read_fixture("domains/auto_renewal_disable/notfound.http"))
95
+ end
96
+
97
+ it "raises a RequestError" do
98
+ expect { domain.disable_auto_renew }.to raise_error(DNSimple::RequestError)
99
+ end
100
+ end
101
+
102
+ context "when auto_renew is false" do
103
+ let(:domain) { described_class.new(name: 'example.com', auto_renew: false) }
104
+
105
+ it "does not send a web request" do
106
+ domain.disable_auto_renew
107
+ expect(WebMock).to have_not_been_made
108
+ end
109
+ end
110
+
111
+ context "when auto_renew is true" do
112
+ let(:domain) { described_class.new(name: 'example.com', auto_renew: true) }
113
+
114
+ before do
115
+ stub_request(:delete, %r[/v1/domains/example.com/auto_renewal]).
116
+ to_return(read_fixture("domains/auto_renewal_disable/success.http"))
117
+ end
118
+
119
+ it "builds the correct request to disable auto_renew" do
120
+ domain.disable_auto_renew
121
+
122
+ expect(WebMock).to have_requested(:delete, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/auto_renewal").
123
+ with(:headers => { 'Accept' => 'application/json' })
124
+ end
125
+
126
+ it "sets auto_renew to false on the domain" do
127
+ domain.disable_auto_renew
128
+ expect(domain.auto_renew).to be_falsey
129
+ end
130
+ end
131
+
132
+ end
35
133
  end
@@ -11,8 +11,8 @@ describe DNSimple::ExtendedAttribute do
11
11
  it "builds the correct request" do
12
12
  described_class.find("com")
13
13
 
14
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/extended_attributes/com").
15
- with(:headers => { 'Accept' => 'application/json' })
14
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/extended_attributes/com").
15
+ with(:headers => { 'Accept' => 'application/json' })
16
16
  end
17
17
 
18
18
  context "when the TLD has no attributes" do
@@ -38,15 +38,15 @@ describe DNSimple::ExtendedAttribute do
38
38
  result = described_class.find("ca")
39
39
 
40
40
  expect(result).to be_a(Array)
41
- expect(result).to have(5).attributes
41
+ expect(result.size).to eq(5)
42
42
 
43
43
  attribute = result[0]
44
44
  expect(attribute).to be_a(described_class)
45
45
  expect(attribute.name).to eq("cira_legal_type")
46
46
  expect(attribute.description).to eq("Legal type of registrant contact")
47
- expect(attribute.required).to be_true
47
+ expect(attribute.required).to be_truthy
48
48
  expect(attribute.options).to be_a(Array)
49
- expect(attribute.options).to have(18).options
49
+ expect(attribute.options.size).to eq(18)
50
50
  end
51
51
  end
52
52
  end
@@ -14,8 +14,8 @@ describe DNSimple::Record do
14
14
  it "builds the correct request" do
15
15
  described_class.find(domain, "2")
16
16
 
17
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/records/2").
18
- with(:headers => { 'Accept' => 'application/json' })
17
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/records/2").
18
+ with(:headers => { 'Accept' => 'application/json' })
19
19
  end
20
20
 
21
21
  context "when the record exists" do
@@ -11,8 +11,8 @@ describe DNSimple::Template do
11
11
  it "builds the correct request" do
12
12
  described_class.find("google-apps")
13
13
 
14
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/templates/google-apps").
15
- with(:headers => { 'Accept' => 'application/json' })
14
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/templates/google-apps").
15
+ with(:headers => { 'Accept' => 'application/json' })
16
16
  end
17
17
 
18
18
  context "when the template exists" do
@@ -3,29 +3,29 @@ require 'spec_helper'
3
3
  describe DNSimple::User do
4
4
  describe ".me" do
5
5
  before do
6
- stub_request(:get, %r[/v1/users/me]).
7
- to_return(read_fixture("users/me/success.http"))
6
+ stub_request(:get, %r[/v1/user]).
7
+ to_return(read_fixture("account/user/success.http"))
8
8
  end
9
9
 
10
10
  it "builds the correct request" do
11
11
  described_class.me
12
12
 
13
- WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/users/me").
14
- with(:headers => { 'Accept' => 'application/json' })
13
+ expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/user").
14
+ with(:headers => { 'Accept' => 'application/json' })
15
15
  end
16
16
 
17
17
  it "returns the user" do
18
18
  result = described_class.me
19
19
 
20
20
  expect(result).to be_a(described_class)
21
- expect(result.id).to eq(2)
21
+ expect(result.id).to eq(19)
22
22
  expect(result.email).to eq("example@example.com")
23
- expect(result.domain_count).to eq(2)
24
- expect(result.domain_limit).to eq(50)
25
- expect(result.login_count).to eq(2)
26
- expect(result.failed_login_count).to eq(0)
27
- expect(result.created_at).to eq("2013-11-08T17:20:58Z")
28
- expect(result.updated_at).to eq("2014-01-14T17:45:57Z")
23
+ expect(result.domain_count).to be_a(Integer)
24
+ expect(result.domain_limit).to be_a(Integer)
25
+ expect(result.login_count).to be_a(Integer)
26
+ expect(result.failed_login_count).to be_a(Integer)
27
+ expect(result.created_at).to eq("2014-01-15T21:59:04Z")
28
+ expect(result.updated_at).to be_a(String)
29
29
  end
30
30
  end
31
31
  end
@@ -0,0 +1,19 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx/1.4.4
3
+ Date: Wed, 15 Jan 2014 23:22:55 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: close
7
+ Status: 200 OK
8
+ X-DNSimple-API-Version: 1.0.0
9
+ Access-Control-Allow-Origin: *
10
+ Access-Control-Allow-Headers: Authorization,Accepts,Content-Type,X-DNSimple-Token,X-DNSimple-Domain-Token,X-CSRF-Token,x-requested-with
11
+ Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
12
+ X-UA-Compatible: IE=Edge,chrome=1
13
+ ETag: "95b5414d75f4adff476276f378e1a742"
14
+ Cache-Control: max-age=0, private, must-revalidate
15
+ X-Request-Id: 15e68ad6a41c24c727d57cfc1a733de7
16
+ X-Runtime: 0.022328
17
+ Strict-Transport-Security: max-age=315360000
18
+
19
+ {"user":{"id":19,"email":"example@example.com","referral_token":"ad932ffb60c295","single_access_token":"api-token","default_contact_id":null,"phone":null,"country_code":null,"authy_identifier":null,"authy_verified_at":null,"domain_count":2,"domain_limit":500,"login_count":3,"failed_login_count":0,"unsubscribed_at":null,"created_at":"2014-01-15T21:59:04Z","updated_at":"2014-01-15T23:21:50Z","first_name":null,"last_name":null}}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 404 Not Found
2
+ Server: nginx/1.4.7
3
+ Date: Tue, 01 Jul 2014 16:16:47 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: close
7
+ Status: 404 Not Found
8
+ Strict-Transport-Security: max-age=631138519
9
+ X-Frame-Options: SAMEORIGIN
10
+ X-XSS-Protection: 1
11
+ X-Content-Type-Options: nosniff
12
+ X-UA-Compatible: chrome=1
13
+ Access-Control-Allow-Origin: *
14
+ Access-Control-Allow-Headers: Authorization,Accepts,Content-Type,X-DNSimple-Token,X-DNSimple-Domain-Token,X-CSRF-Token,x-requested-with
15
+ Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
16
+ Content-Security-Policy: default-src 'self'; connect-src 'self'; font-src 'self' data: netdna.bootstrapcdn.com *.edgecastcdn.net; frame-src 'self'; img-src 'self' data: *.nr-data.net; media-src 'self'; object-src 'self'; script-src 'self' data: 'unsafe-inline' 'unsafe-eval' *.getdrip.com *.visualwebsiteoptimizer.com *.doubleclick.net *.pathful.com *.newrelic.com; style-src 'self' data: 'unsafe-inline' 'unsafe-eval' netdna.bootstrapcdn.com cloud.webtype.com cloud.typography.com;
17
+ Cache-Control: no-cache
18
+ X-Request-Id: a3258b20-64e8-4a82-aed2-7487b8fbd941
19
+ X-Runtime: 0.020447
20
+
21
+ {"message":"Domain `example.com' not found","error":"Domain `example.com' not found"}
@@ -0,0 +1,23 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx/1.4.7
3
+ Date: Tue, 01 Jul 2014 16:15:42 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: close
7
+ Status: 200 OK
8
+ Strict-Transport-Security: max-age=631138519
9
+ X-Frame-Options: SAMEORIGIN
10
+ X-XSS-Protection: 1
11
+ X-Content-Type-Options: nosniff
12
+ X-UA-Compatible: chrome=1
13
+ Access-Control-Allow-Origin: *
14
+ Access-Control-Allow-Headers: Authorization,Accepts,Content-Type,X-DNSimple-Token,X-DNSimple-Domain-Token,X-CSRF-Token,x-requested-with
15
+ Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
16
+ Content-Security-Policy: default-src 'self'; connect-src 'self'; font-src 'self' data: netdna.bootstrapcdn.com *.edgecastcdn.net; frame-src 'self'; img-src 'self' data: *.nr-data.net; media-src 'self'; object-src 'self'; script-src 'self' data: 'unsafe-inline' 'unsafe-eval' *.getdrip.com *.visualwebsiteoptimizer.com *.doubleclick.net *.pathful.com *.newrelic.com; style-src 'self' data: 'unsafe-inline' 'unsafe-eval' netdna.bootstrapcdn.com cloud.webtype.com cloud.typography.com;
17
+ ETag: "bd3e2e772876c2061a4953449963473a"
18
+ Cache-Control: max-age=0, private, must-revalidate
19
+ X-Request-Id: 55f7d890-6971-4b50-8ea9-802e3d426de8
20
+ X-Runtime: 1.005223
21
+ Strict-Transport-Security: max-age=315360000
22
+
23
+ {"domain":{"id":227,"user_id":19,"registrant_id":28,"name":"example-1389823304.com","unicode_name":"example-1389823304.com","token":"api-token","state":"registered","language":null,"lockable":true,"auto_renew":false,"whois_protected":false,"record_count":7,"service_count":0,"expires_on":"2015-01-16","created_at":"2014-01-15T22:01:55.494Z","updated_at":"2014-07-01T16:15:42.350Z","parsed_expiration_date":"2015-01-16T22:56:00.000Z","expires_at":"1/16/2015 10:56:00 PM","name_server_status":null,"private_whois?":false}}
@@ -0,0 +1,21 @@
1
+ HTTP/1.1 404 Not Found
2
+ Server: nginx/1.4.7
3
+ Date: Tue, 01 Jul 2014 16:16:24 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: close
7
+ Status: 404 Not Found
8
+ Strict-Transport-Security: max-age=631138519
9
+ X-Frame-Options: SAMEORIGIN
10
+ X-XSS-Protection: 1
11
+ X-Content-Type-Options: nosniff
12
+ X-UA-Compatible: chrome=1
13
+ Access-Control-Allow-Origin: *
14
+ Access-Control-Allow-Headers: Authorization,Accepts,Content-Type,X-DNSimple-Token,X-DNSimple-Domain-Token,X-CSRF-Token,x-requested-with
15
+ Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
16
+ Content-Security-Policy: default-src 'self'; connect-src 'self'; font-src 'self' data: netdna.bootstrapcdn.com *.edgecastcdn.net; frame-src 'self'; img-src 'self' data: *.nr-data.net; media-src 'self'; object-src 'self'; script-src 'self' data: 'unsafe-inline' 'unsafe-eval' *.getdrip.com *.visualwebsiteoptimizer.com *.doubleclick.net *.pathful.com *.newrelic.com; style-src 'self' data: 'unsafe-inline' 'unsafe-eval' netdna.bootstrapcdn.com cloud.webtype.com cloud.typography.com;
17
+ Cache-Control: no-cache
18
+ X-Request-Id: a1ec9a9a-6d0f-44a4-9e37-8a4adc7f4d2a
19
+ X-Runtime: 0.022126
20
+
21
+ {"message":"Domain `example.com' not found","error":"Domain `example.com' not found"}
@@ -0,0 +1,23 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx/1.4.7
3
+ Date: Tue, 01 Jul 2014 16:15:06 GMT
4
+ Content-Type: application/json; charset=utf-8
5
+ Transfer-Encoding: chunked
6
+ Connection: close
7
+ Status: 200 OK
8
+ Strict-Transport-Security: max-age=631138519
9
+ X-Frame-Options: SAMEORIGIN
10
+ X-XSS-Protection: 1
11
+ X-Content-Type-Options: nosniff
12
+ X-UA-Compatible: chrome=1
13
+ Access-Control-Allow-Origin: *
14
+ Access-Control-Allow-Headers: Authorization,Accepts,Content-Type,X-DNSimple-Token,X-DNSimple-Domain-Token,X-CSRF-Token,x-requested-with
15
+ Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
16
+ Content-Security-Policy: default-src 'self'; connect-src 'self'; font-src 'self' data: netdna.bootstrapcdn.com *.edgecastcdn.net; frame-src 'self'; img-src 'self' data: *.nr-data.net; media-src 'self'; object-src 'self'; script-src 'self' data: 'unsafe-inline' 'unsafe-eval' *.getdrip.com *.visualwebsiteoptimizer.com *.doubleclick.net *.pathful.com *.newrelic.com; style-src 'self' data: 'unsafe-inline' 'unsafe-eval' netdna.bootstrapcdn.com cloud.webtype.com cloud.typography.com;
17
+ ETag: "ab6304c604f60fabe9a0db5b5d2c7a27"
18
+ Cache-Control: max-age=0, private, must-revalidate
19
+ X-Request-Id: 03f71270-5c5b-44e1-9542-20a21d213222
20
+ X-Runtime: 3.279343
21
+ Strict-Transport-Security: max-age=315360000
22
+
23
+ {"domain":{"id":227,"user_id":19,"registrant_id":28,"name":"example-1389823304.com","unicode_name":"example-1389823304.com","token":"api-token","state":"registered","language":null,"lockable":true,"auto_renew":true,"whois_protected":false,"record_count":7,"service_count":0,"expires_on":"2015-01-16","created_at":"2014-01-15T22:01:55.494Z","updated_at":"2014-07-01T16:15:06.485Z","parsed_expiration_date":"2015-01-16T22:56:00.000Z","expires_at":"1/16/2015 10:56:00 PM","name_server_status":null,"private_whois?":false}}
@@ -16,4 +16,4 @@ X-Request-Id: eec6552de5a2aa5ae570139b388ffb9b
16
16
  X-Runtime: 0.046892
17
17
  Strict-Transport-Security: max-age=315360000
18
18
 
19
- {"domain":{"id":6,"user_id":2,"registrant_id":2,"name":"test-1383931357.com","unicode_name":"test-1383931357.com","token":"5b70de8be5cc783c77aa7d8359abd264","state":"registered","language":null,"lockable":true,"auto_renew":true,"whois_protected":false,"record_count":7,"service_count":0,"expires_on":"2015-11-08","created_at":"2013-11-08T17:22:48Z","updated_at":"2014-01-14T18:27:04Z","parsed_expiration_date":"2015-11-08T17:23:00Z","expires_at":"11/8/2015 5:23:00 PM","name_server_status":null,"private_whois?":false}}
19
+ {"domain":{"id":6,"user_id":2,"registrant_id":2,"name":"test-1383931357.com","unicode_name":"test-1383931357.com","token":"api-token","state":"registered","language":null,"lockable":true,"auto_renew":true,"whois_protected":false,"record_count":7,"service_count":0,"expires_on":"2015-11-08","created_at":"2013-11-08T17:22:48Z","updated_at":"2014-01-14T18:27:04Z","parsed_expiration_date":"2015-11-08T17:23:00Z","expires_at":"11/8/2015 5:23:00 PM","name_server_status":null,"private_whois?":false}}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsimple-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 1.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Eden
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-26 00:00:00.000000000 Z
11
+ date: 2014-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -233,11 +233,16 @@ files:
233
233
  - spec/dnsimple/record_spec.rb
234
234
  - spec/dnsimple/template_spec.rb
235
235
  - spec/dnsimple/user_spec.rb
236
+ - spec/files/account/user/success.http
236
237
  - spec/files/certificates/index/success.http
237
238
  - spec/files/certificates/show/notfound.http
238
239
  - spec/files/certificates/show/success.http
239
240
  - spec/files/contacts/show/notfound.http
240
241
  - spec/files/contacts/show/success.http
242
+ - spec/files/domains/auto_renewal_disable/notfound.http
243
+ - spec/files/domains/auto_renewal_disable/success.http
244
+ - spec/files/domains/auto_renewal_enable/notfound.http
245
+ - spec/files/domains/auto_renewal_enable/success.http
241
246
  - spec/files/domains/show/notfound.http
242
247
  - spec/files/domains/show/success.http
243
248
  - spec/files/extended_attributes/ca.http
@@ -248,7 +253,6 @@ files:
248
253
  - spec/files/records/show/success.http
249
254
  - spec/files/templates/show/notfound.http
250
255
  - spec/files/templates/show/success.http
251
- - spec/files/users/me/success.http
252
256
  - spec/spec_helper.rb
253
257
  - spec/support/helpers.rb
254
258
  - spec/support/webmock.rb
@@ -271,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
275
  version: '0'
272
276
  requirements: []
273
277
  rubyforge_project:
274
- rubygems_version: 2.0.14
278
+ rubygems_version: 2.2.2
275
279
  signing_key:
276
280
  specification_version: 4
277
281
  summary: A ruby wrapper for the DNSimple API
@@ -307,11 +311,16 @@ test_files:
307
311
  - spec/dnsimple/record_spec.rb
308
312
  - spec/dnsimple/template_spec.rb
309
313
  - spec/dnsimple/user_spec.rb
314
+ - spec/files/account/user/success.http
310
315
  - spec/files/certificates/index/success.http
311
316
  - spec/files/certificates/show/notfound.http
312
317
  - spec/files/certificates/show/success.http
313
318
  - spec/files/contacts/show/notfound.http
314
319
  - spec/files/contacts/show/success.http
320
+ - spec/files/domains/auto_renewal_disable/notfound.http
321
+ - spec/files/domains/auto_renewal_disable/success.http
322
+ - spec/files/domains/auto_renewal_enable/notfound.http
323
+ - spec/files/domains/auto_renewal_enable/success.http
315
324
  - spec/files/domains/show/notfound.http
316
325
  - spec/files/domains/show/success.http
317
326
  - spec/files/extended_attributes/ca.http
@@ -322,7 +331,6 @@ test_files:
322
331
  - spec/files/records/show/success.http
323
332
  - spec/files/templates/show/notfound.http
324
333
  - spec/files/templates/show/success.http
325
- - spec/files/users/me/success.http
326
334
  - spec/spec_helper.rb
327
335
  - spec/support/helpers.rb
328
336
  - spec/support/webmock.rb
@@ -1,19 +0,0 @@
1
- HTTP/1.1 200 OK
2
- Server: nginx/1.4.4
3
- Date: Tue, 14 Jan 2014 17:45:57 GMT
4
- Content-Type: application/json; charset=utf-8
5
- Transfer-Encoding: chunked
6
- Connection: close
7
- Status: 200 OK
8
- X-DNSimple-API-Version: 1.0.0
9
- Access-Control-Allow-Origin: *
10
- Access-Control-Allow-Headers: Authorization,Accepts,Content-Type,X-DNSimple-Token,X-DNSimple-Domain-Token,X-CSRF-Token,x-requested-with
11
- Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
12
- X-UA-Compatible: IE=Edge,chrome=1
13
- ETag: "eaafff1bd6f4251411afaf624b31ba67"
14
- Cache-Control: max-age=0, private, must-revalidate
15
- X-Request-Id: fea9cce456c8be69c4b0dec81452726b
16
- X-Runtime: 0.034644
17
- Strict-Transport-Security: max-age=315360000
18
-
19
- {"user":{"id":2,"email":"example@example.com","referral_token":"04b12390f6204e","single_access_token":"fCF0n6OTW5n4NtFh8W","default_contact_id":null,"phone":null,"country_code":null,"authy_identifier":null,"authy_verified_at":null,"domain_count":2,"domain_limit":50,"login_count":2,"failed_login_count":0,"unsubscribed_at":null,"created_at":"2013-11-08T17:20:58Z","updated_at":"2014-01-14T17:45:57Z","first_name":null,"last_name":null}}