parent
699db454c3
commit
7a1f8a58df
@ -0,0 +1,17 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class DomainValidator < ActiveModel::EachValidator |
||||
def validate_each(record, attribute, value) |
||||
return if value.blank? |
||||
|
||||
record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(value) |
||||
end |
||||
|
||||
private |
||||
|
||||
def compliant?(value) |
||||
Addressable::URI.new.tap { |uri| uri.host = value } |
||||
rescue Addressable::URI::InvalidURIError |
||||
false |
||||
end |
||||
end |
Loading…
Reference in new issue