Sha256: 61b495052bf0611591908a0140e1fb0b94f2bb61743739852b7272997f5cbb05

Contents?: true

Size: 617 Bytes

Versions: 7

Compression:

Stored size: 617 Bytes

Contents

module RecordStore
  class Record::CNAME < Record
    attr_accessor :cname

    validates :cname, presence: true, format: { with: Record::CNAME_REGEX, message: 'is not a fully qualified domain name' }
    validate :validate_circular_reference

    def initialize(record)
      super
      @cname = Record.ensure_ends_with_dot(record.fetch(:cname))
    end

    def rdata
      { cname: cname }
    end

    def to_s
      "[CNAMERecord] #{fqdn} #{ttl} IN CNAME #{cname}"
    end

    def validate_circular_reference
      errors.add(:fqdn, 'A CNAME should not point to itself') unless fqdn != cname
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
record_store-4.0.7 lib/record_store/record/cname.rb
record_store-4.0.6 lib/record_store/record/cname.rb
record_store-4.0.5 lib/record_store/record/cname.rb
record_store-4.0.4 lib/record_store/record/cname.rb
record_store-4.0.3 lib/record_store/record/cname.rb
record_store-4.0.2 lib/record_store/record/cname.rb
record_store-4.0.1 lib/record_store/record/cname.rb