Class: Bonanza::Validators::DomainNameValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/bonanza/validators/domain_name_validator.rb

Constant Summary collapse

DOMAIN_REGEX =
/^((?=[a-z0-9-]{1,63}\.)(xn--(--)?)?[a-z0-9]+(-[a-z0-9]+)*\.)+((xn--)?[a-z0-9]{2,63})$/

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



9
10
11
12
13
# File 'lib/bonanza/validators/domain_name_validator.rb', line 9

def validate_each(record, attribute, value)
  punycode = SimpleIDN.to_ascii(value.to_s)
  return true if punycode =~ DOMAIN_REGEX
  record.errors.add attribute, :not_a_valid_domain_name
end