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: http://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 http://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 http://localhost:3000. If you are using VCR mocks you should leave c.allow_http_connections_when_no_cassette = true commented out.