Sha256: 50d9ade9c21906f31663c4dec0f4d1b096c5f7c46f063c0859d05b9af4d9e88d

Contents?: true

Size: 567 Bytes

Versions: 16

Compression:

Stored size: 567 Bytes

Contents

module RecordStore
  class Record::TXT < Record
    attr_accessor :txtdata

    validates :txtdata, presence: true, length: { maximum: 255 }
    validate :escaped_semicolons

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

    def to_s
      "[TXTRecord] #{fqdn} #{ttl} IN TXT \"#{txtdata}\""
    end

    def rdata
      { txtdata: txtdata }
    end

    private

    def escaped_semicolons
      if txtdata =~ /([^\\]|\A);/
        errors.add(:txtdata, 'has unescaped semicolons (See RFC 1035).')
      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/txt.rb
record_store-4.0.6 lib/record_store/record/txt.rb
record_store-4.0.5 lib/record_store/record/txt.rb
record_store-4.0.4 lib/record_store/record/txt.rb
record_store-4.0.3 lib/record_store/record/txt.rb
record_store-4.0.2 lib/record_store/record/txt.rb
record_store-4.0.1 lib/record_store/record/txt.rb
record_store-4.0.0 lib/record_store/record/txt.rb
record_store-3.1.4 lib/record_store/record/txt.rb
record_store-3.1.3 lib/record_store/record/txt.rb
record_store-3.1.1 lib/record_store/record/txt.rb
record_store-3.1.0 lib/record_store/record/txt.rb
record_store-3.0.0 lib/record_store/record/txt.rb
record_store-2.1.0 lib/record_store/record/txt.rb
record_store-2.0.0 lib/record_store/record/txt.rb
record_store-1.0.0 lib/record_store/record/txt.rb