No commit activity in last 3 years
No release in over 3 years
A ruby wrapper for the DNSimple API that also includes a command-line client. Modified by SPARQCode to include the ability to set name servers on a domain (hopefully part of the official gem soon).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0
>= 0
>= 2.0.0
>= 0

Runtime

 Project Readme

A Ruby wrapper for the DNSimple API.

Credentials¶ ↑

Create a file in your home directory called .dnsimple

In this file add the following:

username: YOUR_USERNAME
password: YOUR_PASSWORD

Alternatively you can pass the credentials via command-line arguments, as in:

dnsimple -u username -p password command

Commands¶ ↑

The following commands are available for domains:

  • dnsimple list

  • dnsimple describe domain.com

  • dnsimple create domain.com

  • dnsimple register domain.com registrant_id

  • dnsimple transfer domain.com registrant_id [authinfo]

  • dnsimple delete domain.com

  • dnsimple apply domain.com template_short_name

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.

The following commands are available for records:

  • dnsimple record:create [–prio=priority] domain.com name type content [ttl]

  • dnsimple record:list domain.com

  • dnsimple record:delete domain.com record_id

The following commands are available for custom templates:

  • dnsimple template:list

  • dnsimple template:create name short_name [description]

  • dnsimple template:delete short_name

  • dnsimple template:list_records short_name

  • dnsimple template:add_record short_name name type content [ttl] [prio]

  • dnsimple template:delete_record short_name template_record_id

The following commands are available for managing contacts:

  • dnsimple contact:list

  • dnsimple contact:describe id

  • dnsimple contact:create [name:value name:value …]

  • dnsimple contact:update id [name:value name:value …]

  • dnsimple contact:delete id

The following commands are available for purchasing certificates:

  • dnsimple certificate:purchase domain.com name

  • dnsimple certificate:submit id

Contact Attributes¶ ↑

The contact attributes that can be used in the name:value pairs are:

  • first_name

  • last_name

  • organization_name (optional)

  • job_title (required if organization name is specified)

  • address1

  • address2 (optional)

  • city

  • state_province (also aliased as state)

  • postal_code

  • country

  • email

  • phone

  • phone_ext (optional)

  • fax (optional)

Wrapper Classes¶ ↑

In addition to the command line utility you may also use the included Ruby classes directly in your Ruby applications.

Sample:

require 'rubygems'
require 'dnsimple'

DNSimple::Client.username = 'YOUR_USERNAME'
DNSimple::Client.password = 'YOUR_PASSWORD'

user = User.me
puts "#{user.domain_count} domains"

puts "Domains..."
Domain.all.each do |domain|
  puts "  #{domain.name}"
end

domain = Domain.find("example.com")
domain.apply("template") # applies a standard or custom template to the domain

domain = Domain.create("newdomain.com")
puts "Added #{domain.name}"
domain.delete # removes from DNSimple

The complete RDoc for the wrapper classes can be found here:

rdoc.info/projects/aetrion/dnsimple-ruby

Running Rspec Tests¶ ↑

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:

username: foo@bar.com
password: test

And in spec/spec_helper.rb uncomment this line:

# c.allow_http_connections_when_no_cassette = true

The username and password must match the credentials you used to create your account on test.dnsimple.com. To run the tests with VCR mocks you need to include an additional line in the .dnsimple.local file:

site: "http://localhost:3000"

All of the VCR mocks trigger on localhost:3000. If you are using VCR mocks you should leave c.allow_http_connections_when_no_cassette = true commented out.