Sha256: 33510193fda69aa0eef69ffb403f6f4fca5a352faba343ad9b4cb419707b6c7d

Contents?: true

Size: 1000 Bytes

Versions: 30

Compression:

Stored size: 1000 Bytes

Contents

# frozen_string_literal: true

module DnsMock
  module Record
    module Builder
      class Mx < DnsMock::Record::Builder::Base
        include DnsMock::Error::Helper

        MX_RECORD_REGEX_PATTERN = /\A(.+):(\d+)|(.+)\z/.freeze
        RECORD_PREFERENCE_STEP = 10

        def build
          records_data.map.with_index(1) do |record_data, record_preference|
            record_data, custom_record_preference = parse_mx_record_data(record_data)
            target_factory.new(
              record_data: [
                custom_record_preference&.to_i || (record_preference * DnsMock::Record::Builder::Mx::RECORD_PREFERENCE_STEP),
                record_data
              ]
            ).create
          end
        end

        private

        def parse_mx_record_data(record_data)
          raise_record_context_type_error(:mx, record_data, ::String)
          record_data.scan(DnsMock::Record::Builder::Mx::MX_RECORD_REGEX_PATTERN).flatten.compact
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
dns_mock-1.7.6 lib/dns_mock/record/builder/mx.rb
dns_mock-1.7.5 lib/dns_mock/record/builder/mx.rb
dns_mock-1.7.4 lib/dns_mock/record/builder/mx.rb
dns_mock-1.7.3 lib/dns_mock/record/builder/mx.rb
dns_mock-1.7.1 lib/dns_mock/record/builder/mx.rb
dns_mock-1.7.0 lib/dns_mock/record/builder/mx.rb
dns_mock-1.6.2 lib/dns_mock/record/builder/mx.rb
dns_mock-1.6.1 lib/dns_mock/record/builder/mx.rb
dns_mock-1.6.0 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.18 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.17 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.16 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.15 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.14 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.13 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.12 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.11 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.10 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.9 lib/dns_mock/record/builder/mx.rb
dns_mock-1.5.8 lib/dns_mock/record/builder/mx.rb