class ActiveModel::Validations::UrlValidator
Public Instance Methods
url?(url)
click to toggle source
# File lib/validators/validates_url_format_of.rb, line 19 def url?(url) uri = URI(url) regex = if options[:tld] Validators::URL_FORMAT_WITHOUT_TLD_VALIDATION else Validators::URL_FORMAT end uri.is_a?(URI::HTTP) && url.match(regex) && valid_tld?(uri.host) rescue URI::InvalidURIError false end
valid_tld?(host)
click to toggle source
# File lib/validators/validates_url_format_of.rb, line 34 def valid_tld?(host) return true unless options[:tld] Validators::TLD.host_with_valid_tld?(host) end
validate_each(record, attribute, value)
click to toggle source
# File lib/validators/validates_url_format_of.rb, line 6 def validate_each(record, attribute, value) return if value.blank? && options[:allow_blank] return if value.nil? && options[:allow_nil] return if url?(value.to_s) record.errors.add( attribute, :invalid_url, message: options[:message], value: value ) end