class Roadworker::DSL::Hostedzone

Attributes

result[R]

Public Class Methods

new(context, name, id, rrsets = [], &block) click to toggle source
# File lib/roadworker/dsl.rb, line 68
def initialize(context, name, id, rrsets = [], &block)
  @name = DSL.normalize_dns_name(name)
  @context = context.merge(:hosted_zone_name => @name)

  @result = OpenStruct.new({
    :id => id,
    :name => @name,
    :vpcs => [],
    :resource_record_sets => rrsets,
    :rrsets => rrsets,
    :ignore_patterns => [],
  })

  instance_eval(&block)
end

Private Instance Methods

ignore(rrset_name) click to toggle source
# File lib/roadworker/dsl.rb, line 104
def ignore(rrset_name)
  @result.ignore_patterns << case rrset_name
  when Regexp
    rrset_name
  else 
    rrset_name.to_s.sub(/\.\z/, '')
  end
end
ignore_under(rrset_name) click to toggle source
# File lib/roadworker/dsl.rb, line 113
def ignore_under(rrset_name)
  ignore(/(\A|\.)#{Regexp.escape(rrset_name.to_s.sub(/\.\z/, ''))}\z/)
end
resource_record_set(rrset_name, type, &block) click to toggle source
# File lib/roadworker/dsl.rb, line 117
def resource_record_set(rrset_name, type, &block)
  if rrset_name.sub(/\.\z/, '') !~ /#{Regexp.escape(@name.sub(/\.\Z/, ''))}\Z/i
    raise "Invalid ResourceRecordSet Name: #{rrset_name}"
  end

  @result.resource_record_sets << ResourceRecordSet.new(@context, rrset_name, type, &block).result
end
Also aliased as: rrset
rrset(rrset_name, type, &block)
Alias for: resource_record_set
vpc(vpc_region, vpc_id) click to toggle source
# File lib/roadworker/dsl.rb, line 86
def vpc(vpc_region, vpc_id)
  unless vpc_region
    raise "Invalid VPC Region: #{vpc_region.inspect}"
  end

  unless vpc_id
    raise "Invalid VPC ID: #{vpc_id}"
  end

  vpc_h = Aws::Route53::Types::VPC.new(:vpc_region => vpc_region.to_s, :vpc_id => vpc_id.to_s)

  if @result.vpcs.include?(vpc_h)
    raise "VPC is already defined: #{vpc_h.inspect}"
  end

  @result.vpcs << vpc_h
end