# frozen_string_literal: true module DnsMock module Response class Message def initialize(packet, records, dns_answer = DnsMock::Response::Answer, dns_message = ::Resolv::DNS::Message) @dns_answer = dns_answer.new(records) @dns_message = dns_message.decode(packet) end def as_binary_string @as_binary_string ||= begin compose_answer dns_message.encode end end private attr_reader :dns_answer, :dns_message def compose_answer dns_message.each_question do |hostname, record_type| dns_message.answer.push(*dns_answer.build(hostname, record_type)) end end end end end