Module: Splicer

Defined in:
lib/splicer.rb,
lib/splicer/zone.rb,
lib/splicer/errors.rb,
lib/splicer/records.rb,
lib/splicer/version.rb,
lib/splicer/null_object.rb,
lib/splicer/configuration.rb,
lib/splicer/records/record.rb,
lib/splicer/records/a_record.rb,
lib/splicer/records/mx_record.rb,
lib/splicer/records/ns_record.rb,
lib/splicer/records/ptr_record.rb,
lib/splicer/records/spf_record.rb,
lib/splicer/records/srv_record.rb,
lib/splicer/records/txt_record.rb,
lib/splicer/records/aaaa_record.rb,
lib/splicer/records/cname_record.rb

Overview

Splicer is a simple DNS data structure that allows you to publish changes to one or more dns services if desired.

This was constructed with the need for a way to transition from one dns host to another and allow for a failover solution should your primary provider go down.

Note: You will still have to manually point your name servers over to the new provider.

Available Providers

* splicer-dynect
* splicer-dns_made_easy
* splicer-no_op_provider

Example Configureation

Splicer.configure do |config|
  config.register(Splicer::Dynect::Config.new('company','user','password'))
  config.register(Splicer::DNSMadeEasy::Config.new('user','password'))
  config.logger = Logger.new(STDOUT)
end

See Also:

  • for more information

Author:

Defined Under Namespace

Modules: Errors, Records Classes: Configuration, NullObject, Zone

Constant Summary collapse

VERSION =
"2.0.0"
@@configuration =
nil
@@logger =
nil

Class Method Summary collapse

Class Method Details

.configure {|@@configuration| ... } ⇒ void

This method returns an undefined value.

Configures the splicer library

Yields:

  • (@@configuration)


41
42
43
44
45
# File 'lib/splicer.rb', line 41

def self.configure &block
  @@configuration = Configuration.new
  yield(@@configuration)
  @@logger = @@configuration.logger
end

.create_record_in_zone(record, zone) ⇒ void

This method returns an undefined value.



71
72
73
74
75
76
77
# File 'lib/splicer.rb', line 71

def self.create_record_in_zone(record, zone)
  return false unless zone.is_a?(Splicer::Zone)
  return false unless record.is_a?(Splicer::Records::Record)
  providers.each do |provider|
    provider.create_record_in_zone(record, zone)
  end
end

.create_zone(zone) ⇒ void

This method returns an undefined value.



55
56
57
58
59
60
# File 'lib/splicer.rb', line 55

def self.create_zone(zone)
  return false unless zone.is_a?(Splicer::Zone)
  providers.each do |provider|
    provider.create_zone(zone)
  end
end

.delete_record_in_zone(record, zone) ⇒ void

This method returns an undefined value.

Deletes a record from a zone



90
91
92
93
94
95
96
# File 'lib/splicer.rb', line 90

def self.delete_record_in_zone(record, zone)
  return false unless zone.is_a?(Splicer::Zone)
  return false unless record.is_a?(Splicer::Records::Record)
  providers.each do |provider|
    provider.delete_record_in_zone(record, zone)
  end
end

.delete_zone(zone) ⇒ void

This method returns an undefined value.



63
64
65
66
67
68
# File 'lib/splicer.rb', line 63

def self.delete_zone(zone)
  return false unless zone.is_a?(Splicer::Zone)
  providers.each do |provider|
    provider.delete_zone(zone)
  end
end

.loggerLogger|Splicer::NullObject

The logger that splicer will use

Returns:



100
101
102
# File 'lib/splicer.rb', line 100

def self.logger
  @@logger
end

.providersArray<Splicer::Providers::Base>

Gets a list of providers

Returns:

  • (Array<Splicer::Providers::Base>)


49
50
51
52
# File 'lib/splicer.rb', line 49

def self.providers
  @@configuration ||= Configuration.new
  @@configuration.providers
end

.update_record_in_zone(record, zone) ⇒ void

This method returns an undefined value.



80
81
82
83
84
85
86
# File 'lib/splicer.rb', line 80

def self.update_record_in_zone(record, zone)
  return false unless zone.is_a?(Splicer::Zone)
  return false unless record.is_a?(Splicer::Records::Record)
  providers.each do |provider|
    provider.update_record_in_zone(record, zone)
  end
end