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/provider.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
Defined Under Namespace
Modules: Errors, Records Classes: Configuration, NullObject, Provider, Zone
Constant Summary collapse
- VERSION =
'2.2.2'
- @@configuration =
nil
- @@logger =
nil
Class Method Summary collapse
-
.configure {|@@configuration| ... } ⇒ void
Configures the splicer library.
- .create_record_in_zone(record, zone) ⇒ void
- .create_zone(zone) ⇒ void
-
.delete_record_in_zone(record, zone) ⇒ void
Deletes a record from a zone.
- .delete_zone(zone) ⇒ void
- .domain_information_is_invalid(record, zone) ⇒ Object
-
.get_records_for(zone) ⇒ Object
Fetches list of associated records.
-
.get_zone_for(zone) ⇒ Object
Returns the zone data from domain host.
-
.logger ⇒ Logger|Splicer::NullObject
The logger that splicer will use.
-
.providers ⇒ Array<Splicer::Providers::Base>
Gets a list of providers.
- .update_record_in_zone(record, zone) ⇒ void
- .zone_is_invalid(zone) ⇒ Object
Class Method Details
.configure {|@@configuration| ... } ⇒ void
This method returns an undefined value.
Configures the splicer library
42 43 44 45 46 |
# File 'lib/splicer.rb', line 42 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.
72 73 74 75 76 77 |
# File 'lib/splicer.rb', line 72 def self.create_record_in_zone(record, zone) return false if domain_information_is_invalid(record, zone) providers.each do |provider| provider.create_record_in_zone(record, zone) end end |
.create_zone(zone) ⇒ void
This method returns an undefined value.
56 57 58 59 60 61 |
# File 'lib/splicer.rb', line 56 def self.create_zone(zone) return false if zone_is_invalid(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
103 104 105 106 107 108 |
# File 'lib/splicer.rb', line 103 def self.delete_record_in_zone(record, zone) return false if domain_information_is_invalid(record, zone) providers.each do |provider| provider.delete_record_in_zone(record, zone) end end |
.delete_zone(zone) ⇒ void
This method returns an undefined value.
64 65 66 67 68 69 |
# File 'lib/splicer.rb', line 64 def self.delete_zone(zone) return false if zone_is_invalid(zone) providers.each do |provider| provider.delete_zone(zone) end end |
.domain_information_is_invalid(record, zone) ⇒ Object
116 117 118 |
# File 'lib/splicer.rb', line 116 def self.domain_information_is_invalid(record, zone) !record.is_a?(Splicer::Records::Record) || zone_is_invalid(zone) end |
.get_records_for(zone) ⇒ Object
Fetches list of associated records
96 97 98 99 |
# File 'lib/splicer.rb', line 96 def self.get_records_for(zone) return [] if zone_is_invalid(zone) providers.map { |provider| provider.get_records_for(zone) }.flatten end |
.get_zone_for(zone) ⇒ Object
Returns the zone data from domain host
88 89 90 91 92 |
# File 'lib/splicer.rb', line 88 def self.get_zone_for(zone) return false if zone_is_invalid(zone) zone_array = providers.map { |provider| provider.get_zone_for(zone) } zone_array.compact.first end |
.logger ⇒ Logger|Splicer::NullObject
The logger that splicer will use
112 113 114 |
# File 'lib/splicer.rb', line 112 def self.logger @@logger || NullObject.new end |
.providers ⇒ Array<Splicer::Providers::Base>
Gets a list of providers
50 51 52 53 |
# File 'lib/splicer.rb', line 50 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 |
# File 'lib/splicer.rb', line 80 def self.update_record_in_zone(record, zone) return false if domain_information_is_invalid(record, zone) providers.each do |provider| provider.update_record_in_zone(record, zone) end end |