dnsimple-ruby 1.4.1 → 1.5.1
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 +7 -0
 - data/.gitignore +0 -3
 - data/.ruby-version +1 -1
 - data/.travis.yml +1 -0
 - data/CHANGELOG.md +8 -0
 - data/README.md +2 -4
 - data/dnsimple-ruby.gemspec +3 -6
 - data/features/README.md +9 -0
 - data/lib/dnsimple/certificate.rb +37 -36
 - data/lib/dnsimple/client.rb +7 -4
 - data/lib/dnsimple/contact.rb +49 -48
 - data/lib/dnsimple/domain.rb +79 -79
 - data/lib/dnsimple/extended_attribute.rb +1 -1
 - data/lib/dnsimple/record.rb +7 -12
 - data/lib/dnsimple/service.rb +2 -2
 - data/lib/dnsimple/template.rb +11 -17
 - data/lib/dnsimple/template_record.rb +4 -4
 - data/lib/dnsimple/transfer_order.rb +1 -1
 - data/lib/dnsimple/user.rb +6 -14
 - data/lib/dnsimple/version.rb +1 -1
 - data/spec/ci/.dnsimple.test +1 -1
 - data/spec/dnsimple/certificate_spec.rb +40 -30
 - data/spec/dnsimple/client_spec.rb +9 -9
 - data/spec/dnsimple/contact_spec.rb +34 -26
 - data/spec/dnsimple/domain_spec.rb +21 -74
 - data/spec/dnsimple/extended_attributes_spec.rb +42 -9
 - data/spec/dnsimple/record_spec.rb +35 -43
 - data/spec/dnsimple/template_spec.rb +27 -5
 - data/spec/dnsimple/user_spec.rb +22 -14
 - data/spec/files/certificates/index/success.http +19 -0
 - data/spec/files/certificates/show/notfound.http +17 -0
 - data/spec/files/certificates/show/success.http +19 -0
 - data/spec/files/contacts/show/notfound.http +17 -0
 - data/spec/files/contacts/show/success.http +19 -0
 - data/spec/files/domains/show/notfound.http +17 -0
 - data/spec/files/domains/show/success.http +19 -0
 - data/spec/files/extended_attributes/ca.http +19 -0
 - data/spec/files/extended_attributes/com.http +19 -0
 - data/spec/files/extended_attributes/success.http +19 -0
 - data/spec/files/records/index/success.http +19 -0
 - data/spec/files/records/show/notfound.http +17 -0
 - data/spec/files/records/show/success.http +19 -0
 - data/spec/files/templates/show/notfound.http +17 -0
 - data/spec/files/templates/show/success.http +19 -0
 - data/spec/files/users/me/success.http +19 -0
 - data/spec/spec_helper.rb +14 -17
 - data/spec/support/helpers.rb +15 -0
 - data/spec/support/webmock.rb +11 -0
 - metadata +65 -84
 - data/features/README +0 -12
 - data/fixtures/vcr_cassettes/DNSimple_Certificate/_all.yml +0 -57
 - data/fixtures/vcr_cassettes/DNSimple_Certificate/_purchase.yml +0 -57
 - data/fixtures/vcr_cassettes/DNSimple_Certificate/_submit.yml +0 -57
 - data/fixtures/vcr_cassettes/DNSimple_Contact/a_new_contact.yml +0 -50
 - data/fixtures/vcr_cassettes/DNSimple_Contact/an_existing_contact.yml +0 -50
 - data/fixtures/vcr_cassettes/DNSimple_Domain/_all.yml +0 -149
 - data/fixtures/vcr_cassettes/DNSimple_Domain/applying_templates.yml +0 -246
 - data/fixtures/vcr_cassettes/DNSimple_Domain/creating_a_new_domain.yml +0 -51
 - data/fixtures/vcr_cassettes/DNSimple_Domain/finding_an_existing_domain/by_id.yml +0 -51
 - data/fixtures/vcr_cassettes/DNSimple_Domain/finding_an_existing_domain/by_name.yml +0 -51
 - data/fixtures/vcr_cassettes/DNSimple_Domain/registration/with_a_new_registrant_contact.yml +0 -52
 - data/fixtures/vcr_cassettes/DNSimple_Domain/registration/with_an_existing_contact.yml +0 -52
 - data/fixtures/vcr_cassettes/DNSimple_ExtendedAttribute/list_extended_attributes/for_ca.yml +0 -273
 - data/fixtures/vcr_cassettes/DNSimple_ExtendedAttribute/list_extended_attributes/for_com.yml +0 -46
 - data/fixtures/vcr_cassettes/DNSimple_Record/_all.yml +0 -195
 - data/fixtures/vcr_cassettes/DNSimple_Record/creating_a_new_record.yml +0 -51
 - data/fixtures/vcr_cassettes/DNSimple_Record/find_a_record.yml +0 -51
 - data/fixtures/vcr_cassettes/DNSimple_Template/a_template.yml +0 -53
 - data/fixtures/vcr_cassettes/DNSimple_User/_me.yml +0 -49
 - data/spec/README +0 -10
 
| 
         @@ -38,7 +38,7 @@ module DNSimple 
     | 
|
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                # Find the extended attributes for the given TLD
         
     | 
| 
       40 
40 
     | 
    
         
             
                def self.find(tld, options={})
         
     | 
| 
       41 
     | 
    
         
            -
                  response = DNSimple::Client.get("extended_attributes/#{tld}", options)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/extended_attributes/#{tld}", options)
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                  case response.code
         
     | 
| 
       44 
44 
     | 
    
         
             
                  when 200
         
     | 
    
        data/lib/dnsimple/record.rb
    CHANGED
    
    | 
         @@ -7,18 +7,13 @@ module DNSimple 
     | 
|
| 
       7 
7 
     | 
    
         
             
                }
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                attr_accessor :id
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
10 
     | 
    
         
             
                attr_accessor :domain
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
11 
     | 
    
         
             
                attr_accessor :name
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
12 
     | 
    
         
             
                attr_accessor :content
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                attr_accessor :record_type
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
13 
     | 
    
         
             
                attr_accessor :ttl
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
14 
     | 
    
         
             
                attr_accessor :prio
         
     | 
| 
      
 15 
     | 
    
         
            +
                attr_accessor :record_type
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       22 
17 
     | 
    
         | 
| 
       23 
18 
     | 
    
         
             
                def fqdn
         
     | 
| 
       24 
19 
     | 
    
         
             
                  [name, domain.name].delete_if { |v| v !~ DNSimple::BLANK_REGEX }.join(".")
         
     | 
| 
         @@ -32,7 +27,7 @@ module DNSimple 
     | 
|
| 
       32 
27 
     | 
    
         | 
| 
       33 
28 
     | 
    
         
             
                  options.merge!(:body => {:record => record_hash})
         
     | 
| 
       34 
29 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                  response = DNSimple::Client.put("domains/#{domain.id}/records/#{id}", options)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  response = DNSimple::Client.put("/v1/domains/#{domain.id}/records/#{id}", options)
         
     | 
| 
       36 
31 
     | 
    
         | 
| 
       37 
32 
     | 
    
         
             
                  case response.code
         
     | 
| 
       38 
33 
     | 
    
         
             
                  when 200
         
     | 
| 
         @@ -43,7 +38,7 @@ module DNSimple 
     | 
|
| 
       43 
38 
     | 
    
         
             
                end
         
     | 
| 
       44 
39 
     | 
    
         | 
| 
       45 
40 
     | 
    
         
             
                def delete(options={})
         
     | 
| 
       46 
     | 
    
         
            -
                  DNSimple::Client.delete("domains/#{domain.id}/records/#{id}", options)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  DNSimple::Client.delete("/v1/domains/#{domain.id}/records/#{id}", options)
         
     | 
| 
       47 
42 
     | 
    
         
             
                end
         
     | 
| 
       48 
43 
     | 
    
         
             
                alias :destroy :delete
         
     | 
| 
       49 
44 
     | 
    
         | 
| 
         @@ -59,7 +54,7 @@ module DNSimple 
     | 
|
| 
       59 
54 
     | 
    
         | 
| 
       60 
55 
     | 
    
         
             
                  options.merge!({:body => {:record => record_hash}})
         
     | 
| 
       61 
56 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
                  response = DNSimple::Client.post("domains/#{domain.name}/records", options)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  response = DNSimple::Client.post("/v1/domains/#{domain.name}/records", options)
         
     | 
| 
       63 
58 
     | 
    
         | 
| 
       64 
59 
     | 
    
         
             
                  case response.code
         
     | 
| 
       65 
60 
     | 
    
         
             
                  when 201
         
     | 
| 
         @@ -72,7 +67,7 @@ module DNSimple 
     | 
|
| 
       72 
67 
     | 
    
         
             
                end
         
     | 
| 
       73 
68 
     | 
    
         | 
| 
       74 
69 
     | 
    
         
             
                def self.find(domain, id, options={})
         
     | 
| 
       75 
     | 
    
         
            -
                  response = DNSimple::Client.get("domains/#{domain.name}/records/#{id}", options)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/domains/#{domain.name}/records/#{id}", options)
         
     | 
| 
       76 
71 
     | 
    
         | 
| 
       77 
72 
     | 
    
         
             
                  case response.code
         
     | 
| 
       78 
73 
     | 
    
         
             
                  when 200
         
     | 
| 
         @@ -85,7 +80,7 @@ module DNSimple 
     | 
|
| 
       85 
80 
     | 
    
         
             
                end
         
     | 
| 
       86 
81 
     | 
    
         | 
| 
       87 
82 
     | 
    
         
             
                def self.all(domain, options={})
         
     | 
| 
       88 
     | 
    
         
            -
                  response = DNSimple::Client.get("domains/#{domain.name}/records", options)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/domains/#{domain.name}/records", options)
         
     | 
| 
       89 
84 
     | 
    
         | 
| 
       90 
85 
     | 
    
         
             
                  case response.code
         
     | 
| 
       91 
86 
     | 
    
         
             
                  when 200
         
     | 
    
        data/lib/dnsimple/service.rb
    CHANGED
    
    | 
         @@ -14,7 +14,7 @@ module DNSimple 
     | 
|
| 
       14 
14 
     | 
    
         
             
                # Find a service by its ID or short name
         
     | 
| 
       15 
15 
     | 
    
         
             
                def self.find(id_or_short_name, options={})
         
     | 
| 
       16 
16 
     | 
    
         
             
                  id = id_or_short_name
         
     | 
| 
       17 
     | 
    
         
            -
                  response = DNSimple::Client.get("services/#{id}", options)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/services/#{id}", options)
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                  case response.code
         
     | 
| 
       20 
20 
     | 
    
         
             
                  when 200
         
     | 
| 
         @@ -28,7 +28,7 @@ module DNSimple 
     | 
|
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                # Get all of the services that can be applied to a domain
         
     | 
| 
       30 
30 
     | 
    
         
             
                def self.all(options={})
         
     | 
| 
       31 
     | 
    
         
            -
                  response = DNSimple::Client.get("services", options)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/services", options)
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                  case response.code
         
     | 
| 
       34 
34 
     | 
    
         
             
                  when 200
         
     | 
    
        data/lib/dnsimple/template.rb
    CHANGED
    
    | 
         @@ -1,25 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module DNSimple
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
2 
     | 
    
         
             
              class Template < Base
         
     | 
| 
       4 
3 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
                # The template ID in DNSimple
         
     | 
| 
       6 
4 
     | 
    
         
             
                attr_accessor :id
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                # The template name
         
     | 
| 
       9 
5 
     | 
    
         
             
                attr_accessor :name
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                # The template short name
         
     | 
| 
       12 
6 
     | 
    
         
             
                attr_accessor :short_name
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                # The template description
         
     | 
| 
       15 
7 
     | 
    
         
             
                attr_accessor :description
         
     | 
| 
       16 
8 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
                # Delete the template from DNSimple. WARNING: this cannot
         
     | 
| 
       18 
     | 
    
         
            -
                # be undone.
         
     | 
| 
       19 
     | 
    
         
            -
                def delete(options={})
         
     | 
| 
       20 
     | 
    
         
            -
                  DNSimple::Client.delete("templates/#{id}", options)
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
                alias :destroy :delete
         
     | 
| 
       23 
9 
     | 
    
         | 
| 
       24 
10 
     | 
    
         
             
                def self.create(name, short_name, description=nil, options={})
         
     | 
| 
       25 
11 
     | 
    
         
             
                  template_hash = {
         
     | 
| 
         @@ -30,7 +16,7 @@ module DNSimple 
     | 
|
| 
       30 
16 
     | 
    
         | 
| 
       31 
17 
     | 
    
         
             
                  options.merge!(:body => {:dns_template => template_hash})
         
     | 
| 
       32 
18 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                  response = DNSimple::Client.post("templates", options)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  response = DNSimple::Client.post("/v1/templates", options)
         
     | 
| 
       34 
20 
     | 
    
         | 
| 
       35 
21 
     | 
    
         
             
                  case response.code
         
     | 
| 
       36 
22 
     | 
    
         
             
                  when 201
         
     | 
| 
         @@ -42,7 +28,7 @@ module DNSimple 
     | 
|
| 
       42 
28 
     | 
    
         | 
| 
       43 
29 
     | 
    
         
             
                def self.find(id_or_short_name, options={})
         
     | 
| 
       44 
30 
     | 
    
         
             
                  id = id_or_short_name
         
     | 
| 
       45 
     | 
    
         
            -
                  response = DNSimple::Client.get("templates/#{id}", options)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/templates/#{id}", options)
         
     | 
| 
       46 
32 
     | 
    
         | 
| 
       47 
33 
     | 
    
         
             
                  case response.code
         
     | 
| 
       48 
34 
     | 
    
         
             
                  when 200
         
     | 
| 
         @@ -55,7 +41,7 @@ module DNSimple 
     | 
|
| 
       55 
41 
     | 
    
         
             
                end
         
     | 
| 
       56 
42 
     | 
    
         | 
| 
       57 
43 
     | 
    
         
             
                def self.all(options={})
         
     | 
| 
       58 
     | 
    
         
            -
                  response = DNSimple::Client.get("templates", options)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/templates", options)
         
     | 
| 
       59 
45 
     | 
    
         | 
| 
       60 
46 
     | 
    
         
             
                  case response.code
         
     | 
| 
       61 
47 
     | 
    
         
             
                  when 200
         
     | 
| 
         @@ -65,5 +51,13 @@ module DNSimple 
     | 
|
| 
       65 
51 
     | 
    
         
             
                  end
         
     | 
| 
       66 
52 
     | 
    
         
             
                end
         
     | 
| 
       67 
53 
     | 
    
         | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                # Delete the template from DNSimple.
         
     | 
| 
      
 56 
     | 
    
         
            +
                # WARNING: this cannot be undone.
         
     | 
| 
      
 57 
     | 
    
         
            +
                def delete(options={})
         
     | 
| 
      
 58 
     | 
    
         
            +
                  DNSimple::Client.delete("/v1/templates/#{id}", options)
         
     | 
| 
      
 59 
     | 
    
         
            +
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
                alias :destroy :delete
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       68 
62 
     | 
    
         
             
              end
         
     | 
| 
       69 
63 
     | 
    
         
             
            end
         
     | 
| 
         @@ -25,7 +25,7 @@ module DNSimple 
     | 
|
| 
       25 
25 
     | 
    
         
             
                attr_accessor :prio
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                def delete(options={})
         
     | 
| 
       28 
     | 
    
         
            -
                  DNSimple::Client.delete("templates/#{template.id}/template_records/#{id}", options)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  DNSimple::Client.delete("/v1/templates/#{template.id}/template_records/#{id}", options)
         
     | 
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         
             
                alias :destroy :delete
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
         @@ -38,7 +38,7 @@ module DNSimple 
     | 
|
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                  options.merge!({:query => {:dns_template_record => record_hash}})
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                  response = DNSimple::Client.post("templates/#{template.id}/template_records", options)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  response = DNSimple::Client.post("/v1/templates/#{template.id}/template_records", options)
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                  case response.code
         
     | 
| 
       44 
44 
     | 
    
         
             
                  when 201
         
     | 
| 
         @@ -50,7 +50,7 @@ module DNSimple 
     | 
|
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         
             
                def self.find(short_name, id, options={})
         
     | 
| 
       52 
52 
     | 
    
         
             
                  template = DNSimple::Template.find(short_name)
         
     | 
| 
       53 
     | 
    
         
            -
                  response = DNSimple::Client.get("templates/#{template.id}/template_records/#{id}", options)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/templates/#{template.id}/template_records/#{id}", options)
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
       55 
55 
     | 
    
         
             
                  case response.code
         
     | 
| 
       56 
56 
     | 
    
         
             
                  when 200
         
     | 
| 
         @@ -66,7 +66,7 @@ module DNSimple 
     | 
|
| 
       66 
66 
     | 
    
         
             
                # given short name.
         
     | 
| 
       67 
67 
     | 
    
         
             
                def self.all(short_name, options={})
         
     | 
| 
       68 
68 
     | 
    
         
             
                  template = DNSimple::Template.find(short_name)
         
     | 
| 
       69 
     | 
    
         
            -
                  response = DNSimple::Client.get("templates/#{template.id}/template_records", options)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/templates/#{template.id}/template_records", options)
         
     | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
                  case response.code
         
     | 
| 
       72 
72 
     | 
    
         
             
                  when 200
         
     | 
    
        data/lib/dnsimple/user.rb
    CHANGED
    
    | 
         @@ -2,29 +2,21 @@ module DNSimple 
     | 
|
| 
       2 
2 
     | 
    
         
             
              class User < Base
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                attr_accessor :id
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                attr_accessor :created_at
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                attr_accessor :updated_at
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
5 
     | 
    
         
             
                attr_accessor :email
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
                attr_accessor :domain_count
         
     | 
| 
      
 7 
     | 
    
         
            +
                attr_accessor :domain_limit
         
     | 
| 
       12 
8 
     | 
    
         
             
                attr_accessor :login_count
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
9 
     | 
    
         
             
                attr_accessor :failed_login_count
         
     | 
| 
      
 10 
     | 
    
         
            +
                attr_accessor :created_at
         
     | 
| 
      
 11 
     | 
    
         
            +
                attr_accessor :updated_at
         
     | 
| 
       15 
12 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                attr_accessor :domain_count
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                attr_accessor :domain_limit
         
     | 
| 
       19 
13 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                def self.me 
     | 
| 
       21 
     | 
    
         
            -
                  response = DNSimple::Client.get("users/me" 
     | 
| 
      
 14 
     | 
    
         
            +
                def self.me
         
     | 
| 
      
 15 
     | 
    
         
            +
                  response = DNSimple::Client.get("/v1/users/me")
         
     | 
| 
       22 
16 
     | 
    
         | 
| 
       23 
17 
     | 
    
         
             
                  case response.code
         
     | 
| 
       24 
18 
     | 
    
         
             
                  when 200
         
     | 
| 
       25 
19 
     | 
    
         
             
                    new(response["user"])
         
     | 
| 
       26 
     | 
    
         
            -
                  when 404
         
     | 
| 
       27 
     | 
    
         
            -
                    raise RecordNotFound, "Could not find account with current credentials"
         
     | 
| 
       28 
20 
     | 
    
         
             
                  else
         
     | 
| 
       29 
21 
     | 
    
         
             
                    raise RequestError.new("Error finding account", response)
         
     | 
| 
       30 
22 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/dnsimple/version.rb
    CHANGED
    
    
    
        data/spec/ci/.dnsimple.test
    CHANGED
    
    
| 
         @@ -1,45 +1,55 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe DNSimple::Certificate do
         
     | 
| 
       4 
     | 
    
         
            -
              let(:domain_name) { 'example.com' }
         
     | 
| 
       5 
     | 
    
         
            -
              let(:domain) { DNSimple::Domain.new(:name => domain_name) }
         
     | 
| 
       6 
4 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
               
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
              let(:domain) { DNSimple::Domain.new(:name => "example.com") }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              describe ".find" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                before do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  stub_request(:get, %r[/v1/domains/example.com/certificates/2]).
         
     | 
| 
      
 11 
     | 
    
         
            +
                      to_return(read_fixture("certificates/show/success.http"))
         
     | 
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                   
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                it "builds the correct request" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  described_class.find(domain, "2")
         
     | 
| 
      
 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 
19 
     | 
    
         
             
                end
         
     | 
| 
       18 
     | 
    
         
            -
              end
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
                context "when the certificate exists" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  it "returns the certificate" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                    result = described_class.find(domain, "2")
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    expect(result.id).to eq(4576)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    expect(result.domain).to eq(domain)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    expect(result.name).to eq("www")
         
     | 
| 
      
 28 
     | 
    
         
            +
                    expect(result.csr).to eq("-----BEGIN NEW CERTIFICATE REQUEST-----\nRHr2akB4KMba6FMAsvlStnO/2ika16hNx+d3smPNsER+HA==\n-----END NEW CERTIFICATE REQUEST-----\n")
         
     | 
| 
      
 29 
     | 
    
         
            +
                    expect(result.ssl_certificate).to eq("-----BEGIN CERTIFICATE-----\nXwTkw5UCPpaVyUYcwHlvaprOe9ZbwIyEHm2AT1rW+70=\n-----END CERTIFICATE-----\n")
         
     | 
| 
      
 30 
     | 
    
         
            +
                    expect(result.private_key).to eq("-----BEGIN RSA PRIVATE KEY-----\nUeXbFi7o+nuPfRhpBFQEKwacKFc3Hnc1hH6UsnC0KY25cUif7yz38A==\n-----END RSA PRIVATE KEY-----\n")
         
     | 
| 
      
 31 
     | 
    
         
            +
                    expect(result.approver_email).to eq("example@example.net")
         
     | 
| 
      
 32 
     | 
    
         
            +
                    expect(result.created_at).to eq("2013-09-17T21:54:42Z")
         
     | 
| 
      
 33 
     | 
    
         
            +
                    expect(result.updated_at).to eq("2013-09-17T22:25:36Z")
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    expect(result.available_approver_emails).to be_nil
         
     | 
| 
      
 36 
     | 
    
         
            +
                    expect(result.certificate_status).to be_nil
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
       26 
38 
     | 
    
         
             
                end
         
     | 
| 
       27 
39 
     | 
    
         
             
              end
         
     | 
| 
       28 
40 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                it " 
     | 
| 
       32 
     | 
    
         
            -
                   
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
       34 
     | 
    
         
            -
                   
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              describe "#fqdn" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                it "joins the name and domain name" do
         
     | 
| 
      
 44 
     | 
    
         
            +
                  certificate = described_class.new(:name => 'www')
         
     | 
| 
      
 45 
     | 
    
         
            +
                  certificate.domain = domain
         
     | 
| 
      
 46 
     | 
    
         
            +
                  expect(certificate.fqdn).to eq("www.#{domain.name}")
         
     | 
| 
       35 
47 
     | 
    
         
             
                end
         
     | 
| 
       36 
     | 
    
         
            -
              end
         
     | 
| 
       37 
48 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                  certificate.submit("admin@example.com")
         
     | 
| 
      
 49 
     | 
    
         
            +
                it "strips blank parts from name" do
         
     | 
| 
      
 50 
     | 
    
         
            +
                  certificate = described_class.new(:name => '')
         
     | 
| 
      
 51 
     | 
    
         
            +
                  certificate.domain = domain
         
     | 
| 
      
 52 
     | 
    
         
            +
                  expect(certificate.fqdn).to eq(domain.name)
         
     | 
| 
       43 
53 
     | 
    
         
             
                end
         
     | 
| 
       44 
54 
     | 
    
         
             
              end
         
     | 
| 
       45 
55 
     | 
    
         | 
| 
         @@ -26,40 +26,40 @@ describe DNSimple::Client do 
     | 
|
| 
       26 
26 
     | 
    
         
             
                    DNSimple::Client.username   = 'user'
         
     | 
| 
       27 
27 
     | 
    
         
             
                    DNSimple::Client.password   = 'pass'
         
     | 
| 
       28 
28 
     | 
    
         
             
                    DNSimple::Client.api_token  = nil
         
     | 
| 
       29 
     | 
    
         
            -
                    DNSimple::Client.base_uri   = 'https:// 
     | 
| 
      
 29 
     | 
    
         
            +
                    DNSimple::Client.base_uri   = 'https://api.example.com/'
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                    HTTParty.expects(method).
         
     | 
| 
       32 
     | 
    
         
            -
                      with('https:// 
     | 
| 
      
 32 
     | 
    
         
            +
                      with('https://api.example.com/domains',
         
     | 
| 
       33 
33 
     | 
    
         
             
                        :format => :json, :headers => {'Accept' => 'application/json'},
         
     | 
| 
       34 
     | 
    
         
            -
                        :basic_auth => {:username => 'user', :password => 'pass'}).
         
     | 
| 
      
 34 
     | 
    
         
            +
                        :basic_auth => { :username => 'user', :password => 'pass'}).
         
     | 
| 
       35 
35 
     | 
    
         
             
                      returns(response)
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
                    DNSimple::Client.send(method, 'domains')
         
     | 
| 
      
 37 
     | 
    
         
            +
                    DNSimple::Client.send(method, '/domains')
         
     | 
| 
       38 
38 
     | 
    
         
             
                  end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                  it "uses header authentication if there's an api token provided" do
         
     | 
| 
       41 
41 
     | 
    
         
             
                    DNSimple::Client.username   = 'user'
         
     | 
| 
       42 
42 
     | 
    
         
             
                    DNSimple::Client.password   = nil
         
     | 
| 
       43 
43 
     | 
    
         
             
                    DNSimple::Client.api_token  = 'token'
         
     | 
| 
       44 
     | 
    
         
            -
                    DNSimple::Client.base_uri   = 'https:// 
     | 
| 
      
 44 
     | 
    
         
            +
                    DNSimple::Client.base_uri   = 'https://api.example.com/'
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
                    HTTParty.expects(method).
         
     | 
| 
       47 
     | 
    
         
            -
                      with('https:// 
     | 
| 
      
 47 
     | 
    
         
            +
                      with('https://api.example.com/domains',
         
     | 
| 
       48 
48 
     | 
    
         
             
                        :format => :json, :headers => {'Accept' => 'application/json',
         
     | 
| 
       49 
49 
     | 
    
         
             
                        'X-DNSimple-Token' => 'user:token'}).
         
     | 
| 
       50 
50 
     | 
    
         
             
                      returns(response)
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
     | 
    
         
            -
                    DNSimple::Client.send(method, 'domains')
         
     | 
| 
      
 52 
     | 
    
         
            +
                    DNSimple::Client.send(method, '/domains')
         
     | 
| 
       53 
53 
     | 
    
         
             
                  end
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
       55 
55 
     | 
    
         
             
                  it "raises an error if there's no password or api token provided" do
         
     | 
| 
       56 
56 
     | 
    
         
             
                    DNSimple::Client.username   = 'user'
         
     | 
| 
       57 
57 
     | 
    
         
             
                    DNSimple::Client.password   = nil
         
     | 
| 
       58 
58 
     | 
    
         
             
                    DNSimple::Client.api_token  = nil
         
     | 
| 
       59 
     | 
    
         
            -
                    DNSimple::Client.base_uri   = 'https:// 
     | 
| 
      
 59 
     | 
    
         
            +
                    DNSimple::Client.base_uri   = 'https://api.example.com/'
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
                    lambda {
         
     | 
| 
       62 
     | 
    
         
            -
                      DNSimple::Client.send(method, 'domains')
         
     | 
| 
      
 62 
     | 
    
         
            +
                      DNSimple::Client.send(method, '/domains')
         
     | 
| 
       63 
63 
     | 
    
         
             
                    }.should raise_error(DNSimple::Error, 'A password or API token is required for all API requests.')
         
     | 
| 
       64 
64 
     | 
    
         
             
                  end
         
     | 
| 
       65 
65 
     | 
    
         
             
                end
         
     | 
| 
         @@ -2,35 +2,43 @@ require 'spec_helper' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe DNSimple::Contact do
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
              describe " 
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                  {
         
     | 
| 
       10 
     | 
    
         
            -
                    :first_name => 'John',
         
     | 
| 
       11 
     | 
    
         
            -
                    :last_name => 'Doe',
         
     | 
| 
       12 
     | 
    
         
            -
                    :address1 => '1 SW 1st Street',
         
     | 
| 
       13 
     | 
    
         
            -
                    :city => 'Miami',
         
     | 
| 
       14 
     | 
    
         
            -
                    :state_province => 'FL',
         
     | 
| 
       15 
     | 
    
         
            -
                    :postal_code => '33143',
         
     | 
| 
       16 
     | 
    
         
            -
                    :country => 'US',
         
     | 
| 
       17 
     | 
    
         
            -
                    :email_address => 'john.doe@example.com',
         
     | 
| 
       18 
     | 
    
         
            -
                    :phone => '305 111 2222'
         
     | 
| 
       19 
     | 
    
         
            -
                  }
         
     | 
| 
       20 
     | 
    
         
            -
                }
         
     | 
| 
       21 
     | 
    
         
            -
                it "has specific attributes" do
         
     | 
| 
       22 
     | 
    
         
            -
                  contact = DNSimple::Contact.create(contact_attributes)
         
     | 
| 
       23 
     | 
    
         
            -
                  contact.first_name.should eql(contact_attributes[:first_name])
         
     | 
| 
       24 
     | 
    
         
            -
                  contact.id.should_not be_nil
         
     | 
| 
      
 5 
     | 
    
         
            +
              describe ".find" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                before do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  stub_request(:get, %r[/v1/contacts/2]).
         
     | 
| 
      
 8 
     | 
    
         
            +
                      to_return(read_fixture("contacts/show/success.http"))
         
     | 
| 
       25 
9 
     | 
    
         
             
                end
         
     | 
| 
       26 
     | 
    
         
            -
              end
         
     | 
| 
       27 
10 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
                it "builds the correct request" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  described_class.find("2")
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  WebMock.should have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/contacts/2").
         
     | 
| 
      
 15 
     | 
    
         
            +
                                 with(:headers => { 'Accept' => 'application/json' })
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                context "when the contact exists" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  it "returns the contact" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                    result = described_class.find("2")
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                    expect(result).to be_a(described_class)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    expect(result.id).to eq(2)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    expect(result.first_name).to eq("Simone")
         
     | 
| 
      
 25 
     | 
    
         
            +
                    expect(result.last_name).to eq("Carletti")
         
     | 
| 
      
 26 
     | 
    
         
            +
                    expect(result.job_title).to eq("Underwater Programmer")
         
     | 
| 
      
 27 
     | 
    
         
            +
                    expect(result.organization_name).to eq("DNSimple")
         
     | 
| 
      
 28 
     | 
    
         
            +
                    expect(result.email_address).to eq("example@example.com")
         
     | 
| 
      
 29 
     | 
    
         
            +
                    expect(result.phone).to eq("+1 111 000000")
         
     | 
| 
      
 30 
     | 
    
         
            +
                    expect(result.fax).to eq("+1 222 000000")
         
     | 
| 
      
 31 
     | 
    
         
            +
                    expect(result.address1).to eq("Awesome Street")
         
     | 
| 
      
 32 
     | 
    
         
            +
                    expect(result.address2).to eq("c/o Someone")
         
     | 
| 
      
 33 
     | 
    
         
            +
                    expect(result.city).to eq("Rome")
         
     | 
| 
      
 34 
     | 
    
         
            +
                    expect(result.state_province).to eq("RM")
         
     | 
| 
      
 35 
     | 
    
         
            +
                    expect(result.postal_code).to eq("00171")
         
     | 
| 
      
 36 
     | 
    
         
            +
                    expect(result.country).to eq("IT")
         
     | 
| 
      
 37 
     | 
    
         
            +
                    expect(result.created_at).to eq("2013-11-08T17:23:15Z")
         
     | 
| 
      
 38 
     | 
    
         
            +
                    expect(result.updated_at).to eq("2013-11-08T17:23:15Z")
         
     | 
| 
       30 
39 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                   
     | 
| 
       33 
     | 
    
         
            -
                  contact.should_not be_nil
         
     | 
| 
      
 40 
     | 
    
         
            +
                    expect(result.phone_ext).to be_nil
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
       34 
42 
     | 
    
         
             
                end
         
     | 
| 
       35 
43 
     | 
    
         
             
              end
         
     | 
| 
       36 
44 
     | 
    
         |