Class: DnsMadeEasy::Zone::AnameFlattener
- Inherits:
-
Object
- Object
- DnsMadeEasy::Zone::AnameFlattener
- Defined in:
- lib/dnsmadeeasy/zone/aname_flattener.rb
Overview
Flattens ANAME records into resolved A records for RFC-portable exports. Resolution is a point-in-time snapshot, so every conversion is reported as a notice.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(records, resolver: nil) ⇒ AnameFlattener
constructor
A new instance of AnameFlattener.
Constructor Details
#initialize(records, resolver: nil) ⇒ AnameFlattener
Returns a new instance of AnameFlattener.
15 16 17 18 |
# File 'lib/dnsmadeeasy/zone/aname_flattener.rb', line 15 def initialize(records, resolver: nil) @records = records @resolver = resolver || default_resolver end |
Instance Method Details
#call ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/dnsmadeeasy/zone/aname_flattener.rb', line 20 def call flattened = [] notices = [] records.each do |record| if record.type == 'ANAME' addresses = resolve(record) return Failure(["Unable to resolve ANAME target #{record.value} for --strict-rfc export"]) if addresses.empty? addresses.each { |address| flattened << record.new(type: 'A', value: address) } notices << flatten_notice(record, addresses) else flattened << record end end Success([flattened, notices]) end |