class DomainValidator::DomainValidator

Constants

RE_DOMAIN

Public Instance Methods

has_dns_record?(domain) click to toggle source
# File lib/domain_validator/validator.rb, line 29
def has_dns_record?(domain)
  options[:verify_dns] ? DnsCheck.has_record?(domain) : true
end
is_valid_domain?(domain) click to toggle source
# File lib/domain_validator/validator.rb, line 25
def is_valid_domain?(domain)
  domain =~ RE_DOMAIN
end
validate_domain_dns(record, attr_name, value) click to toggle source
# File lib/domain_validator/validator.rb, line 20
def validate_domain_dns(record, attr_name, value)
  valid_domain = has_dns_record?(value)
  record.errors.add(attr_name, verify_dns_message || "does not have a DNS record") unless valid_domain
end
validate_domain_format(record, attr_name, value) click to toggle source
# File lib/domain_validator/validator.rb, line 15
def validate_domain_format(record, attr_name, value)
  valid_domain = is_valid_domain?(value)
  record.errors.add(attr_name, options[:message] || "is invalid") unless valid_domain
end
validate_each(record, attr_name, value) click to toggle source
# File lib/domain_validator/validator.rb, line 9
def validate_each(record, attr_name, value)
  validate_domain_format(record, attr_name, value)
  # Only waste time with DNS check if record is invalid?
  validate_domain_dns(record, attr_name, value) if record.errors.empty? && options[:verify_dns]
end
verify_dns_message() click to toggle source
# File lib/domain_validator/validator.rb, line 33
def verify_dns_message
  verify_dns = options[:verify_dns]
  if verify_dns.is_a? Hash
    verify_dns[:message] || options[:message]
  end
end