class SprinkleDNS::HostedZone

Attributes

name[R]
resource_record_sets[RW]

Public Class Methods

new(name) click to toggle source
# File lib/sprinkle_dns/hosted_zone.rb, line 6
def initialize(name)
  @name                 = name
  @resource_record_sets = []
end

Public Instance Methods

add_or_update_hosted_zone_entry(wanted_entry) click to toggle source
# File lib/sprinkle_dns/hosted_zone.rb, line 11
def add_or_update_hosted_zone_entry(wanted_entry)
  raise if wanted_entry.hosted_zone != self.name

  existing_entry = @resource_record_sets.find{|hze| hze.type == wanted_entry.type && hze.name == wanted_entry.name}

  if existing_entry
    if existing_entry.persisted?
      existing_entry.mark_referenced!
      existing_entry.new_value(wanted_entry)
    else
      wanted_entry.mark_referenced!
      @resource_record_sets[@resource_record_sets.index(existing_entry)] = wanted_entry
    end
  else
    wanted_entry.mark_new!
    wanted_entry.mark_referenced!
    @resource_record_sets << wanted_entry
  end
end
entries() click to toggle source
# File lib/sprinkle_dns/hosted_zone.rb, line 31
def entries
  @resource_record_sets
end