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