shanesveller-webbynode-api 0.2.0 → 0.2.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.
data/README.markdown CHANGED
@@ -14,9 +14,10 @@ is currently based on the API guide version 2.
14
14
  * List of all individual records in a given DNS zone
15
15
  * Creation/deletion of DNS zones
16
16
  * Activation/deactivation of DNS zones
17
+ * DNS record creation and deletion
17
18
 
18
19
  ##Planned Features
19
- * DNS record creation, editing and deletion
20
+ * DNS record editing
20
21
  * Whatever else WebbyNode gives us in the API :)
21
22
 
22
23
  ##Usage and Examples
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -185,6 +185,27 @@ class WebbyNode
185
185
  end
186
186
  return auth_post("/api/xml/dns/#{@id}/records/new", :query => options)["hash"]["record"]
187
187
  end
188
+
189
+ # Deletes an existing DNS record by ID
190
+ #
191
+ # @since 0.2.1
192
+ # @option options [String] :email E-mail address used for API access
193
+ # @option options [String] :token API token used for API access
194
+ # @option options [Integer] :id WebbyNode's internally-used ID that idenftifies the record
195
+ # @return [Boolean] Returns true upon succesful deletion of the zone.
196
+ # @raise [ArgumentError] Raises ArgumentError if :token, :email, or :id are
197
+ # missing from the options parameter.
198
+ # @example Delete a DNS record with ID of 100
199
+ # WebbyNode::DNS::Record.delete({
200
+ # :email => email, :token => token,
201
+ # :id => 100
202
+ # })
203
+ # # => true
204
+ def self.delete(options = {})
205
+ raise ArgumentError, ":email and :token are required arguments for API access" unless options[:email] && options[:token]
206
+ raise ArgumentError, ":id is a required argument" unless options[:id]
207
+ return auth_post("/api/xml/records/#{options[:id]}/delete", :query => options)["hash"]["success"]
208
+ end
188
209
  end
189
210
  end
190
211
  end
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <hash>
3
+ <success type="boolean">true</success>
4
+ </hash>
data/test/dns_test.rb CHANGED
@@ -180,4 +180,17 @@ class WebbyNodeDNSTest < Test::Unit::TestCase
180
180
  end
181
181
  context "fetching a DNS record" do
182
182
  end
183
+ context "deleting a DNS record" do
184
+ setup do
185
+ @email = "example@email.com"
186
+ @token = "123456"
187
+ @id = 171
188
+ data_path = File.join(File.dirname(__FILE__), "data")
189
+ FakeWeb.clean_registry
190
+ FakeWeb.register_uri(:post, /^https:\/\/manager\.webbynode\.com\/api\/xml\/records\/\d+\/delete\?.+/i, :body => File.read("#{data_path}/delete-record.xml"))
191
+ end
192
+ should "return a boolean true for succesful deletion" do
193
+ WebbyNode::DNS::Record.delete(:email => @email, :token => @token, :id => @id)
194
+ end
195
+ end
183
196
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{webbynode-api}
5
- s.version = "0.2.0"
5
+ s.version = "0.2.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Shane Sveller"]
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "test/data/bad-auth.xml",
32
32
  "test/data/client.xml",
33
33
  "test/data/deactivate-zone.xml",
34
+ "test/data/delete-record.xml",
34
35
  "test/data/delete-zone.xml",
35
36
  "test/data/dns-1.xml",
36
37
  "test/data/dns-records.xml",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shanesveller-webbynode-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Sveller
@@ -58,6 +58,7 @@ files:
58
58
  - test/data/bad-auth.xml
59
59
  - test/data/client.xml
60
60
  - test/data/deactivate-zone.xml
61
+ - test/data/delete-record.xml
61
62
  - test/data/delete-zone.xml
62
63
  - test/data/dns-1.xml
63
64
  - test/data/dns-records.xml