Sha256: 3079605567a41e0bf0f6484ffccbc128de638a8df8a1ca9dca5fa63b6c3badcc

Contents?: true

Size: 626 Bytes

Versions: 16

Compression:

Stored size: 626 Bytes

Contents

module RecordStore
  class Record::AAAA < Record
    attr_accessor :address

    validates_presence_of :address
    validate :valid_address?

    def initialize(record)
      super
      @address = record.fetch(:address)
    end

    def to_s
      "[AAAARecord] #{fqdn} #{ttl} IN AAAA #{address}"
    end

    def rdata
      { address: address }
    end

    private

    def valid_address?
      begin
        ip = IPAddr.new(address)
        errors.add(:address, 'is not an IPv6 address') unless ip.ipv6?
      rescue IPAddr::InvalidAddressError => e
        errors.add(:address, 'is invalid')
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
record_store-4.0.7 lib/record_store/record/aaaa.rb
record_store-4.0.6 lib/record_store/record/aaaa.rb
record_store-4.0.5 lib/record_store/record/aaaa.rb
record_store-4.0.4 lib/record_store/record/aaaa.rb
record_store-4.0.3 lib/record_store/record/aaaa.rb
record_store-4.0.2 lib/record_store/record/aaaa.rb
record_store-4.0.1 lib/record_store/record/aaaa.rb
record_store-4.0.0 lib/record_store/record/aaaa.rb
record_store-3.1.4 lib/record_store/record/aaaa.rb
record_store-3.1.3 lib/record_store/record/aaaa.rb
record_store-3.1.1 lib/record_store/record/aaaa.rb
record_store-3.1.0 lib/record_store/record/aaaa.rb
record_store-3.0.0 lib/record_store/record/aaaa.rb
record_store-2.1.0 lib/record_store/record/aaaa.rb
record_store-2.0.0 lib/record_store/record/aaaa.rb
record_store-1.0.0 lib/record_store/record/aaaa.rb