Sha256: 4a7285acc41acb1b363dfdb79446cf25da010c7762412db318b594e811384cf5

Contents?: true

Size: 707 Bytes

Versions: 3

Compression:

Stored size: 707 Bytes

Contents

# 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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dns_mock-0.2.1 lib/dns_mock/response/message.rb
dns_mock-0.2.0 lib/dns_mock/response/message.rb
dns_mock-0.1.0 lib/dns_mock/response/message.rb