Sha256: 71285c2fbe570fc6dee629184d6cdb4efc51ed9fa842258ea94514c1c3f774f2
Contents?: true
Size: 943 Bytes
Versions: 2
Compression:
Stored size: 943 Bytes
Contents
require 'aws-sdk' require_relative 'exceptions' module Deputy53 # A Route53 Client class Route53 < ContractedObject Contract None => ::Aws::Route53::Client def api @api ||= ::Aws::Route53::Client.new region: region end Contract None => String def region ENV.fetch('AWS_DEFAULT_REGION') { 'us-west-1' } end Contract None => ArrayOf[::Aws::Route53::Types::HostedZone] def zones @zones ||= api.list_hosted_zones.hosted_zones end Contract None => ArrayOf[String] def names @names ||= zones.map(&:name) end Contract String => ArrayOf[::Aws::Route53::Types::HostedZone] def zones(name) zones.select { |z| z.name == name } end Contract String => Bool def zone?(name) !zones(name).empty? end Contract String => String def id(name) raise ZoneNotFoundError unless zone? name zones(name).first.id end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
deputy53-0.13.5 | lib/deputy53/route53.rb |
deputy53-0.13.0 | lib/deputy53/route53.rb |