class SprinkleDNS::HostedZoneAlias

Attributes

changed_name[RW]
changed_target_dns_name[RW]
changed_target_hosted_zone_id[RW]
changed_type[RW]
hosted_zone[RW]
name[RW]
new_entry[RW]
persisted[RW]
referenced[RW]
target_dns_name[RW]
target_hosted_zone_id[RW]
type[RW]

Public Class Methods

new(type, name, target_hosted_zone_id, target_dns_name, hosted_zone) click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 8
def initialize(type, name, target_hosted_zone_id, target_dns_name, hosted_zone)
  @type                  = type
  @name                  = zonify!(name)
  @target_hosted_zone_id = target_hosted_zone_id
  @target_dns_name       = target_dns_name
  @hosted_zone           = hosted_zone

  @new_entry = nil

  raise if [@type, @name, @target_hosted_zone_id, @target_dns_name, @hosted_zone].any?(&:nil?)

  @changed_type = false
  @changed_name = false
  @changed_target_hosted_zone_id = false
  @changed_target_dns_name = false
  @referenced = false
  @persisted = false
end

Public Instance Methods

changed?() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 43
def changed?
  [@changed_type, @changed_name, @changed_target_hosted_zone_id, @changed_target_dns_name].any?
end
mark_new!() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 27
def mark_new!
  @changed_type, @changed_name, @changed_target_hosted_zone_id, @changed_target_dns_name = [true, true, true, true]
end
mark_referenced!() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 47
def mark_referenced!
  @referenced = true
end
new?() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 31
def new?
  [@changed_type, @changed_name, @changed_target_hosted_zone_id, @changed_target_dns_name].all?
end
new_value(new_entry) click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 55
def new_value(new_entry)
  if new_entry.class == SprinkleDNS::HostedZoneAlias
    @changed_target_hosted_zone_id = true if @target_hosted_zone_id != new_entry.target_hosted_zone_id
    @changed_target_dns_name       = true if @target_dns_name       != new_entry.target_dns_name
  else
    @changed_target_hosted_zone_id = true
    @changed_target_dns_name       = true
  end

  # TODO test this
  if @changed_target_hosted_zone_id || @changed_target_dns_name
    @new_entry = new_entry
  end

  self.changed?
end
persisted!() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 35
def persisted!
  @persisted = true
end
persisted?() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 39
def persisted?
  @persisted
end
referenced?() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 51
def referenced?
  @referenced
end
to_s() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 72
def to_s
  [
    "Alias",
    sprintf("%4s", type),
    sprintf("%30s", name),
    sprintf("%10s", target_hosted_zone_id),
    sprintf("%30s", target_dns_name),
    sprintf("%6s", hosted_zone),
  ].join(" ")
end

Private Instance Methods

valid_record_types() click to toggle source
# File lib/sprinkle_dns/hosted_zone_alias.rb, line 85
def valid_record_types
  ['SOA','A','TXT','NS','CNAME','MX','NAPTR','PTR','SRV','SPF','AAAA']
end