sparqcode-dnsimple-ruby 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/.bundle/config +3 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +16 -0
  4. data/Gemfile.lock +71 -0
  5. data/LICENSE +22 -0
  6. data/README +125 -0
  7. data/README.rdoc +125 -0
  8. data/README.textile +161 -0
  9. data/Rakefile +33 -0
  10. data/VERSION +1 -0
  11. data/bin/dnsimple +4 -0
  12. data/bin/dnsimple.rb +153 -0
  13. data/dnsimple-ruby.gemspec +191 -0
  14. data/features/README +12 -0
  15. data/features/cli/certificates/purchase_certificate.feature +10 -0
  16. data/features/cli/contacts/create_contact.feature +10 -0
  17. data/features/cli/domains/check_domain.feature +10 -0
  18. data/features/cli/domains/create_domain.feature +10 -0
  19. data/features/cli/domains/delete_domain.feature +11 -0
  20. data/features/cli/domains/register_domain.feature +10 -0
  21. data/features/cli/records/create_ptr_record.feature +11 -0
  22. data/features/cli/records/create_record.feature +12 -0
  23. data/features/cli/records/delete_record.feature +14 -0
  24. data/features/cli/templates/apply_template.feature +11 -0
  25. data/features/step_definitions/certificate_steps.rb +3 -0
  26. data/features/step_definitions/cli_steps.rb +8 -0
  27. data/features/step_definitions/domain_steps.rb +32 -0
  28. data/features/step_definitions/record_steps.rb +38 -0
  29. data/features/step_definitions/template_steps.rb +9 -0
  30. data/features/support/env.rb +17 -0
  31. data/fixtures/vcr_cassettes/DNSimple_Certificate/_all.yml +44 -0
  32. data/fixtures/vcr_cassettes/DNSimple_Certificate/_purchase.yml +44 -0
  33. data/fixtures/vcr_cassettes/DNSimple_Certificate/_submit.yml +44 -0
  34. data/fixtures/vcr_cassettes/DNSimple_Contact/a_new_contact.yml +42 -0
  35. data/fixtures/vcr_cassettes/DNSimple_Contact/an_existing_contact.yml +42 -0
  36. data/fixtures/vcr_cassettes/DNSimple_Domain/_all.yml +130 -0
  37. data/fixtures/vcr_cassettes/DNSimple_Domain/applying_templates.yml +216 -0
  38. data/fixtures/vcr_cassettes/DNSimple_Domain/creating_a_new_domain.yml +44 -0
  39. data/fixtures/vcr_cassettes/DNSimple_Domain/finding_an_existing_domain/by_id.yml +44 -0
  40. data/fixtures/vcr_cassettes/DNSimple_Domain/finding_an_existing_domain/by_name.yml +44 -0
  41. data/fixtures/vcr_cassettes/DNSimple_Domain/registration/with_a_new_registrant_contact.yml +44 -0
  42. data/fixtures/vcr_cassettes/DNSimple_Domain/registration/with_an_existing_contact.yml +44 -0
  43. data/fixtures/vcr_cassettes/DNSimple_Domain/setting_name_servers.yml +30 -0
  44. data/fixtures/vcr_cassettes/DNSimple_ExtendedAttribute/list_extended_attributes/for_ca.yml +40 -0
  45. data/fixtures/vcr_cassettes/DNSimple_ExtendedAttribute/list_extended_attributes/for_com.yml +40 -0
  46. data/fixtures/vcr_cassettes/DNSimple_Record/_all.yml +173 -0
  47. data/fixtures/vcr_cassettes/DNSimple_Record/creating_a_new_record.yml +44 -0
  48. data/fixtures/vcr_cassettes/DNSimple_Record/find_a_record.yml +44 -0
  49. data/fixtures/vcr_cassettes/DNSimple_Template/a_template.yml +44 -0
  50. data/fixtures/vcr_cassettes/DNSimple_User/_me.yml +42 -0
  51. data/lib/dnsimple.rb +19 -0
  52. data/lib/dnsimple/certificate.rb +158 -0
  53. data/lib/dnsimple/cli.rb +122 -0
  54. data/lib/dnsimple/client.rb +74 -0
  55. data/lib/dnsimple/command.rb +10 -0
  56. data/lib/dnsimple/commands/add_service.rb +16 -0
  57. data/lib/dnsimple/commands/add_template_record.rb +18 -0
  58. data/lib/dnsimple/commands/apply_template.rb +15 -0
  59. data/lib/dnsimple/commands/check_domain.rb +11 -0
  60. data/lib/dnsimple/commands/clear_domain.rb +16 -0
  61. data/lib/dnsimple/commands/create_contact.rb +21 -0
  62. data/lib/dnsimple/commands/create_domain.rb +16 -0
  63. data/lib/dnsimple/commands/create_record.rb +20 -0
  64. data/lib/dnsimple/commands/create_template.rb +14 -0
  65. data/lib/dnsimple/commands/delete_contact.rb +14 -0
  66. data/lib/dnsimple/commands/delete_domain.rb +14 -0
  67. data/lib/dnsimple/commands/delete_record.rb +16 -0
  68. data/lib/dnsimple/commands/delete_template.rb +13 -0
  69. data/lib/dnsimple/commands/delete_template_record.rb +16 -0
  70. data/lib/dnsimple/commands/describe_certificate.rb +34 -0
  71. data/lib/dnsimple/commands/describe_contact.rb +25 -0
  72. data/lib/dnsimple/commands/describe_domain.rb +14 -0
  73. data/lib/dnsimple/commands/describe_record.rb +16 -0
  74. data/lib/dnsimple/commands/describe_service.rb +12 -0
  75. data/lib/dnsimple/commands/describe_user.rb +18 -0
  76. data/lib/dnsimple/commands/list_applied_services.rb +16 -0
  77. data/lib/dnsimple/commands/list_available_services.rb +16 -0
  78. data/lib/dnsimple/commands/list_certificates.rb +15 -0
  79. data/lib/dnsimple/commands/list_contacts.rb +13 -0
  80. data/lib/dnsimple/commands/list_domains.rb +13 -0
  81. data/lib/dnsimple/commands/list_extended_attributes.rb +25 -0
  82. data/lib/dnsimple/commands/list_records.rb +21 -0
  83. data/lib/dnsimple/commands/list_services.rb +14 -0
  84. data/lib/dnsimple/commands/list_template_records.rb +17 -0
  85. data/lib/dnsimple/commands/list_templates.rb +13 -0
  86. data/lib/dnsimple/commands/purchase_certificate.rb +19 -0
  87. data/lib/dnsimple/commands/register_domain.rb +33 -0
  88. data/lib/dnsimple/commands/remove_service.rb +14 -0
  89. data/lib/dnsimple/commands/submit_certificate.rb +19 -0
  90. data/lib/dnsimple/commands/transfer_domain.rb +21 -0
  91. data/lib/dnsimple/commands/update_contact.rb +25 -0
  92. data/lib/dnsimple/commands/update_record.rb +23 -0
  93. data/lib/dnsimple/contact.rb +181 -0
  94. data/lib/dnsimple/domain.rb +246 -0
  95. data/lib/dnsimple/error.rb +32 -0
  96. data/lib/dnsimple/extended_attribute.rb +73 -0
  97. data/lib/dnsimple/record.rb +128 -0
  98. data/lib/dnsimple/service.rb +58 -0
  99. data/lib/dnsimple/template.rb +91 -0
  100. data/lib/dnsimple/template_record.rb +103 -0
  101. data/lib/dnsimple/transfer_order.rb +45 -0
  102. data/lib/dnsimple/user.rb +44 -0
  103. data/spec/README +10 -0
  104. data/spec/certificate_spec.rb +46 -0
  105. data/spec/command_spec.rb +19 -0
  106. data/spec/commands/add_service_spec.rb +29 -0
  107. data/spec/commands/create_record_spec.rb +23 -0
  108. data/spec/commands/list_records_spec.rb +34 -0
  109. data/spec/commands/purchase_certificate_spec.rb +24 -0
  110. data/spec/commands/submit_certificate_spec.rb +19 -0
  111. data/spec/contact_spec.rb +35 -0
  112. data/spec/domain_spec.rb +97 -0
  113. data/spec/extended_attributes_spec.rb +19 -0
  114. data/spec/record_spec.rb +59 -0
  115. data/spec/spec_helper.rb +22 -0
  116. data/spec/template_spec.rb +11 -0
  117. data/spec/user_spec.rb +23 -0
  118. metadata +353 -0
@@ -0,0 +1,3 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: "1"
3
+ BUNDLE_PATH: rspec
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use ruby-1.8.7@dnsimple-ruby --create
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'httparty'
4
+
5
+ group :development do
6
+ gem 'rake'
7
+ gem 'jeweler'
8
+ gem 'rspec', '>= 2.0.0'
9
+ gem 'mocha'
10
+ gem 'ruby-debug', :platforms => 'ruby_18'
11
+ gem 'cucumber'
12
+ gem 'aruba'
13
+ gem 'ruby-debug'
14
+ gem 'fakeweb'
15
+ gem 'vcr'
16
+ end
@@ -0,0 +1,71 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ aruba (0.4.7)
5
+ childprocess (>= 0.2.2)
6
+ cucumber (>= 1.1.1)
7
+ ffi (= 1.0.9)
8
+ rspec (>= 2.7.0)
9
+ builder (3.0.0)
10
+ childprocess (0.2.2)
11
+ ffi (~> 1.0.6)
12
+ columnize (0.3.4)
13
+ cucumber (1.1.2)
14
+ builder (>= 2.1.2)
15
+ diff-lcs (>= 1.1.2)
16
+ gherkin (~> 2.6.2)
17
+ json (>= 1.4.6)
18
+ term-ansicolor (>= 1.0.6)
19
+ diff-lcs (1.1.3)
20
+ fakeweb (1.3.0)
21
+ ffi (1.0.9)
22
+ gherkin (2.6.3)
23
+ json (>= 1.4.6)
24
+ git (1.2.5)
25
+ httparty (0.8.1)
26
+ multi_json
27
+ multi_xml
28
+ jeweler (1.6.4)
29
+ bundler (~> 1.0)
30
+ git (>= 1.2.5)
31
+ rake
32
+ json (1.6.1)
33
+ linecache (0.46)
34
+ rbx-require-relative (> 0.0.4)
35
+ metaclass (0.0.1)
36
+ mocha (0.10.0)
37
+ metaclass (~> 0.0.1)
38
+ multi_json (1.0.3)
39
+ multi_xml (0.4.1)
40
+ rake (0.9.2.2)
41
+ rbx-require-relative (0.0.5)
42
+ rspec (2.7.0)
43
+ rspec-core (~> 2.7.0)
44
+ rspec-expectations (~> 2.7.0)
45
+ rspec-mocks (~> 2.7.0)
46
+ rspec-core (2.7.1)
47
+ rspec-expectations (2.7.0)
48
+ diff-lcs (~> 1.1.2)
49
+ rspec-mocks (2.7.0)
50
+ ruby-debug (0.10.4)
51
+ columnize (>= 0.1)
52
+ ruby-debug-base (~> 0.10.4.0)
53
+ ruby-debug-base (0.10.4)
54
+ linecache (>= 0.3)
55
+ term-ansicolor (1.0.7)
56
+ vcr (1.11.3)
57
+
58
+ PLATFORMS
59
+ ruby
60
+
61
+ DEPENDENCIES
62
+ aruba
63
+ cucumber
64
+ fakeweb
65
+ httparty
66
+ jeweler
67
+ mocha
68
+ rake
69
+ rspec (>= 2.0.0)
70
+ ruby-debug
71
+ vcr
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010-2011 Aetrion LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+
data/README ADDED
@@ -0,0 +1,125 @@
1
+ A Ruby command line utility and wrapper for the DNSimple API.
2
+
3
+ DNSimple is a hosted DNS service that can be found at http://dnsimple.com/
4
+
5
+ == Credentials
6
+
7
+ Create a file in your home directory called .dnsimple
8
+
9
+ In this file add the following:
10
+
11
+ username: YOUR_USERNAME
12
+ password: YOUR_PASSWORD
13
+
14
+ == Commands
15
+
16
+ There are two ways to interact with the DNSimple Ruby wrapper. The first is
17
+ to use the command line utility that is included. The commands available
18
+ are as follows:
19
+
20
+ For help:
21
+
22
+ * dnsimple help
23
+
24
+ The following commands are available for domains:
25
+
26
+ * dnsimple list
27
+ * dnsimple describe domain.com
28
+ * dnsimple create domain.com
29
+ * dnsimple register domain.com registrant_id
30
+ * dnsimple transfer domain.com registrant_id [authinfo]
31
+ * dnsimple delete domain.com
32
+ * dnsimple apply domain.com template_short_name
33
+
34
+ Please note that domain registration and transfer can only be done through the API for domains that do not require extended attributes. A future version of the API will add support for extended attributes.
35
+
36
+ The following commands are available for records:
37
+
38
+ * dnsimple record:create [--prio=priority] domain.com name type content [ttl]
39
+ * dnsimple record:list domain.com
40
+ * dnsimple record:delete domain.com record_id
41
+
42
+ The following commands are available for custom templates:
43
+
44
+ * dnsimple template:list
45
+ * dnsimple template:create name short_name [description]
46
+ * dnsimple template:delete short_name
47
+ * dnsimple template:list_records short_name
48
+ * dnsimple template:add_record short_name name type content [ttl] [prio]
49
+ * dnsimple template:delete_record short_name template_record_id
50
+
51
+ The following commands are available for managing contacts:
52
+
53
+ * dnsimple contact:list
54
+ * dnsimple contact:describe id
55
+ * dnsimple contact:create [name:value name:value ...]
56
+ * dnsimple contact:update id [name:value name:value ...]
57
+ * dnsimple contact:delete id
58
+
59
+ The following commands are available for purchasing certificates:
60
+
61
+ * dnsimple certificate:purchase domain.com name contact_id
62
+ * dnsimple certificate:submit id
63
+
64
+ The contact name/value pairs are:
65
+
66
+ * first_name
67
+ * last_name
68
+ * organization_name (optional)
69
+ * job_title (required if organization name is specified)
70
+ * address1
71
+ * address2 (optional)
72
+ * city
73
+ * state_province (also aliased as state)
74
+ * postal_code
75
+ * country
76
+ * email
77
+ * phone
78
+ * phone_ext (optional)
79
+ * fax (optional)
80
+
81
+ == Wrapper Classes
82
+
83
+ In addition to the command line utility you may also use the included Ruby
84
+ classes directly in your Ruby applications.
85
+
86
+ Sample:
87
+
88
+ require 'rubygems'
89
+ require 'dnsimple'
90
+
91
+ DNSimple::Client.username = 'YOUR_USERNAME'
92
+ DNSimple::Client.password = 'YOUR_PASSWORD'
93
+
94
+ puts "Domains..."
95
+ Domain.all.each do |domain|
96
+ puts " #{domain.name}"
97
+ end
98
+
99
+ domain = Domain.find("example.com")
100
+ domain.apply("template") # applies a standard or custom template to the domain
101
+
102
+ domain = Domain.create("newdomain.com")
103
+ puts "Added #{domain.name}"
104
+ domain.delete # removes from DNSimple
105
+
106
+ The complete RDoc for the wrapper classes can be found here:
107
+
108
+ http://rdoc.info/projects/aetrion/dnsimple-ruby
109
+
110
+ == Running Rspec Tests
111
+
112
+ There are two ways you can run the tests, either using VCR mocked responses or by hitting the test site. Either way you need to create a configuration file in your home directory called .dnsimple.local. To run the tests with the DNSimple test site this file should include:
113
+
114
+ username: foo@bar.com
115
+ password: test
116
+
117
+ And in spec/spec_helper.rb uncomment this line:
118
+
119
+ # c.allow_http_connections_when_no_cassette = true
120
+
121
+ The username and password must match the credentials you used to create your account on http://test.dnsimple.com. To run the tests with VCR mocks you need to include an additional line in the .dnsimple.local file:
122
+
123
+ site: "http://localhost:3000"
124
+
125
+ All of the VCR mocks trigger on http://localhost:3000. If you are using VCR mocks you should leave c.allow_http_connections_when_no_cassette = true commented out.
@@ -0,0 +1,125 @@
1
+ A Ruby wrapper for the DNSimple API.
2
+
3
+ == Credentials
4
+
5
+ Create a file in your home directory called .dnsimple
6
+
7
+ In this file add the following:
8
+
9
+ username: YOUR_USERNAME
10
+ password: YOUR_PASSWORD
11
+
12
+ Alternatively you can pass the credentials via command-line arguments, as in:
13
+
14
+ dnsimple -u username -p password command
15
+
16
+
17
+ == Commands
18
+
19
+ The following commands are available for domains:
20
+
21
+ * dnsimple list
22
+ * dnsimple describe domain.com
23
+ * dnsimple create domain.com
24
+ * dnsimple register domain.com registrant_id
25
+ * dnsimple transfer domain.com registrant_id [authinfo]
26
+ * dnsimple delete domain.com
27
+ * dnsimple apply domain.com template_short_name
28
+
29
+ Please note that domain registration and transfer can only be done through the API for domains that do not require extended attributes. A future version of the API will add support for extended attributes.
30
+
31
+ The following commands are available for records:
32
+
33
+ * dnsimple record:create [--prio=priority] domain.com name type content [ttl]
34
+ * dnsimple record:list domain.com
35
+ * dnsimple record:delete domain.com record_id
36
+
37
+ The following commands are available for custom templates:
38
+
39
+ * dnsimple template:list
40
+ * dnsimple template:create name short_name [description]
41
+ * dnsimple template:delete short_name
42
+ * dnsimple template:list_records short_name
43
+ * dnsimple template:add_record short_name name type content [ttl] [prio]
44
+ * dnsimple template:delete_record short_name template_record_id
45
+
46
+ The following commands are available for managing contacts:
47
+
48
+ * dnsimple contact:list
49
+ * dnsimple contact:describe id
50
+ * dnsimple contact:create [name:value name:value ...]
51
+ * dnsimple contact:update id [name:value name:value ...]
52
+ * dnsimple contact:delete id
53
+
54
+ The following commands are available for purchasing certificates:
55
+
56
+ * dnsimple certificate:purchase domain.com name
57
+ * dnsimple certificate:submit id
58
+
59
+ === Contact Attributes
60
+
61
+ The contact attributes that can be used in the name:value pairs are:
62
+
63
+ * first_name
64
+ * last_name
65
+ * organization_name (optional)
66
+ * job_title (required if organization name is specified)
67
+ * address1
68
+ * address2 (optional)
69
+ * city
70
+ * state_province (also aliased as state)
71
+ * postal_code
72
+ * country
73
+ * email
74
+ * phone
75
+ * phone_ext (optional)
76
+ * fax (optional)
77
+
78
+ == Wrapper Classes
79
+
80
+ In addition to the command line utility you may also use the included Ruby
81
+ classes directly in your Ruby applications.
82
+
83
+ Sample:
84
+
85
+ require 'rubygems'
86
+ require 'dnsimple'
87
+
88
+ DNSimple::Client.username = 'YOUR_USERNAME'
89
+ DNSimple::Client.password = 'YOUR_PASSWORD'
90
+
91
+ user = User.me
92
+ puts "#{user.domain_count} domains"
93
+
94
+ puts "Domains..."
95
+ Domain.all.each do |domain|
96
+ puts " #{domain.name}"
97
+ end
98
+
99
+ domain = Domain.find("example.com")
100
+ domain.apply("template") # applies a standard or custom template to the domain
101
+
102
+ domain = Domain.create("newdomain.com")
103
+ puts "Added #{domain.name}"
104
+ domain.delete # removes from DNSimple
105
+
106
+ The complete RDoc for the wrapper classes can be found here:
107
+
108
+ http://rdoc.info/projects/aetrion/dnsimple-ruby
109
+
110
+ == Running Rspec Tests
111
+
112
+ There are two ways you can run the tests, either using VCR mocked responses or by hitting the test site. Either way you need to create a configuration file in your home directory called .dnsimple.local. To run the tests with the DNSimple test site this file should include:
113
+
114
+ username: foo@bar.com
115
+ password: test
116
+
117
+ And in spec/spec_helper.rb uncomment this line:
118
+
119
+ # c.allow_http_connections_when_no_cassette = true
120
+
121
+ The username and password must match the credentials you used to create your account on http://test.dnsimple.com. To run the tests with VCR mocks you need to include an additional line in the .dnsimple.local file:
122
+
123
+ site: "http://localhost:3000"
124
+
125
+ All of the VCR mocks trigger on http://localhost:3000. If you are using VCR mocks you should leave c.allow_http_connections_when_no_cassette = true commented out.
@@ -0,0 +1,161 @@
1
+ A Ruby command line utility and wrapper for the DNSimple API.
2
+
3
+ DNSimple is a hosted DNS service that can be found at "http://dnsimple.com/":http://dnsimple.com/
4
+
5
+ h2. Installation
6
+
7
+ <pre><code>[sudo] gem install dnsimple-ruby</code></pre>
8
+
9
+ h2. Credentials
10
+
11
+ Create a file in your home directory called .dnsimple
12
+
13
+ In this file add the following:
14
+
15
+ <pre><code>username: YOUR_USERNAME
16
+ password: YOUR_PASSWORD
17
+ </code></pre>
18
+
19
+ Alternatively you can pass the credentials via command-line arguments, as in:
20
+
21
+ <pre><code>dnsimple -u username -p password list</code></pre>
22
+
23
+ h2. Commands
24
+
25
+ There are two ways to interact with the DNSimple Ruby wrapper. The first is
26
+ to use the command line utility that is included.
27
+
28
+ The commands available are as follows:
29
+
30
+ For help:
31
+
32
+ * dnsimple help
33
+
34
+ The following commands are available for domains:
35
+
36
+ * dnsimple list
37
+ * dnsimple describe domain.com
38
+ * dnsimple create domain.com
39
+ * dnsimple register domain.com registrant_id
40
+ * dnsimple transfer domain.com registrant_id [authinfo]
41
+ * dnsimple delete domain.com
42
+ * dnsimple apply domain.com template_short_name
43
+
44
+ Please note that domain registration and transfer can only be done through the API for domains that do not require extended attributes. A future version of the API will add support for extended attributes.
45
+
46
+ The following commands are available for records:
47
+
48
+ * dnsimple record:create [--prio=priority] domain.com name type content [ttl]
49
+ * dnsimple record:list domain.com
50
+ * dnsimple record:delete domain.com record_id
51
+
52
+ The following commands are available for custom templates:
53
+
54
+ * dnsimple template:list
55
+ * dnsimple template:create name short_name [description]
56
+ * dnsimple template:delete short_name
57
+ * dnsimple template:list_records short_name
58
+ * dnsimple template:add_record short_name name type content [ttl] [prio]
59
+ * dnsimple template:delete_record short_name template_record_id
60
+
61
+ The following commands are available for managing contacts:
62
+
63
+ * dnsimple contact:list
64
+ * dnsimple contact:describe id
65
+ * dnsimple contact:create [name:value name:value ...]
66
+ * dnsimple contact:update id [name:value name:value ...]
67
+ * dnsimple contact:delete id
68
+
69
+ To list all extended attributes for a given TLD:
70
+
71
+ * dnsimple extended-attributes:list tld
72
+
73
+ The following commands are available for listing services and adding and removing them from domains
74
+
75
+ * service:list
76
+ * service:describe short_name
77
+ * service:applied domain.com
78
+ * service:available domain.com
79
+ * service:add domain.com short_name
80
+ * service:remove domain.com short_name
81
+
82
+ The following commands are available for purchasing certificates:
83
+
84
+ * dnsimple certificate:purchase domain.com name
85
+ * dnsimple certificate:submit domain.com id approver_email
86
+
87
+ h3. Contact Attributes
88
+
89
+ The contact attributes that can be used in the name:value pairs are:
90
+
91
+ * first_name
92
+ * last_name
93
+ * organization_name (optional)
94
+ * job_title (required if organization name is specified)
95
+ * address1
96
+ * address2 (optional)
97
+ * city
98
+ * state_province (also aliased as state)
99
+ * postal_code
100
+ * country
101
+ * email
102
+ * phone
103
+ * phone_ext (optional)
104
+ * fax (optional)
105
+
106
+ h2. Wrapper Classes
107
+
108
+ In addition to the command line utility you may also use the included Ruby
109
+ classes directly in your Ruby applications.
110
+
111
+ Sample:
112
+
113
+ <pre><code>
114
+ require 'rubygems'
115
+ require 'dnsimple'
116
+
117
+ DNSimple::Client.username = 'YOUR_USERNAME'
118
+ DNSimple::Client.password = 'YOUR_PASSWORD'
119
+
120
+ user = User.me
121
+ puts "#{user.domain_count} domains"
122
+
123
+ puts "Domains..."
124
+ Domain.all.each do |domain|
125
+ puts " #{domain.name}"
126
+ end
127
+
128
+ domain = Domain.find("example.com")
129
+ domain.apply("template") # applies a standard or custom template to the domain
130
+
131
+ domain = Domain.create("newdomain.com")
132
+ puts "Added #{domain.name}"
133
+ domain.delete # removes from DNSimple
134
+ </pre></code>
135
+
136
+ The complete RDoc for the wrapper classes can be found here:
137
+
138
+ "http://rdoc.info/projects/aetrion/dnsimple-ruby":http://rdoc.info/projects/aetrion/dnsimple-ruby
139
+
140
+ h2. Running Rspec Tests
141
+
142
+ There are two ways you can run the tests, either using VCR mocked responses or by hitting the test site. Either way you need to create a configuration file in your home directory called .dnsimple.local. To run the tests with the DNSimple test site this file should include:
143
+
144
+ <pre><code>
145
+ username: foo@bar.com
146
+ password: test
147
+ </code></pre>
148
+
149
+ And in spec/spec_helper.rb uncomment this line:
150
+
151
+ <pre><code>
152
+ # c.allow_http_connections_when_no_cassette = true
153
+ </code></pre>
154
+
155
+ The username and password must match the credentials you used to create your account on http://test.dnsimple.com. To run the tests with VCR mocks you need to include an additional line in the .dnsimple.local file:
156
+
157
+ <pre><code>
158
+ site: "http://localhost:3000"
159
+ </code></pre>
160
+
161
+ All of the VCR mocks trigger on http://localhost:3000. If you are using VCR mocks you should leave c.allow_http_connections_when_no_cassette = true commented out.