class SprinkleDNS::HostedZoneEntry
Attributes
changed_name[RW]
changed_ttl[RW]
changed_type[RW]
changed_value[RW]
hosted_zone[RW]
name[RW]
new_entry[RW]
persisted[RW]
referenced[RW]
ttl[RW]
type[RW]
value[RW]
Public Class Methods
new(type, name, value, ttl, hosted_zone)
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 8 def initialize(type, name, value, ttl, hosted_zone) @type = type @name = zonify!(name) @value = Array.wrap(value) @ttl = ttl @hosted_zone = hosted_zone @new_entry = nil raise if [@type, @name, @value, @ttl, @hosted_zone].any?(&:nil?) raise SprinkleDNS::RecordNotAString.new('Record-type should be a string') unless @type.is_a?(String) raise SprinkleDNS::RecordNotValid.new("Record #{@type} is not supported") if !valid_record_types.include?(@type) raise SprinkleDNS::TtlNotInteger.new('TTL should be an integer') unless @ttl.is_a?(Integer) @changed_type = false @changed_name = false @changed_value = false @changed_ttl = false @referenced = false @persisted = false if ['CNAME', 'MX'].include?(type) @value = @value.map!{|v| zonify!(v)} end end
Public Instance Methods
changed?()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 50 def changed? [@changed_type, @changed_name, @changed_value, @changed_ttl].any? end
mark_new!()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 34 def mark_new! @changed_type, @changed_name, @changed_value, @changed_ttl = [true, true, true, true] end
mark_referenced!()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 54 def mark_referenced! @referenced = true end
new?()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 38 def new? [@changed_type, @changed_name, @changed_value, @changed_ttl].all? end
new_value(new_entry)
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 62 def new_value(new_entry) if new_entry.class == SprinkleDNS::HostedZoneEntry @changed_value = true if @value.sort != new_entry.value.sort @changed_ttl = true if @ttl != new_entry.ttl else @changed_value = true @changed_ttl = true end # TODO test this if @changed_value || @changed_ttl @new_entry = new_entry end self.changed? end
persisted!()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 42 def persisted! @persisted = true end
persisted?()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 46 def persisted? @persisted end
referenced?()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 58 def referenced? @referenced end
to_s()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 79 def to_s [ "Entry", sprintf("%4s", type), sprintf("%30s", name), sprintf("%50s", value.join(", ")), sprintf("%6s", ttl), sprintf("%6s", hosted_zone), ].join(" ") end
Private Instance Methods
valid_record_types()
click to toggle source
# File lib/sprinkle_dns/hosted_zone_entry.rb, line 92 def valid_record_types ['SOA','A','TXT','NS','CNAME','MX','NAPTR','PTR','SRV','SPF','AAAA'] end