Sha256: bc18d32e5378232e82eeceb13ea8d2afb27c5177971c911b0012a0ea9baa1430
Contents?: true
Size: 809 Bytes
Versions: 1
Compression:
Stored size: 809 Bytes
Contents
class UrlFormatValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) value = format_value(record, attribute, value) unless URI.parse(value).kind_of?(URI::HTTP) && value =~ url_regexp record.errors[attribute] << (options[:message] || "is invalid") end rescue URI::InvalidURIError record.errors[attribute] << (options[:message] || "is invalid") end def format_value(record, attribute, value) return value if value =~ /\Ahttps?:\/\// record.send("#{attribute}=","http://#{value}") end # Thanks to Dean Perry and Ryan Bates # https://github.com/deanperry/url_formatter/blob/master/lib/url_formatter.rb def url_regexp /\Ahttps?:\/\/([\A\s:@]+:[\A\s:@]*@)?[-[[:alnum:]]]+(\.[-[[:alnum:]]]+)+\.?(:\d{1,5})?([\/?]\S*)?\z/iux end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
url_format-0.0.8 | lib/url_format/url_format_validator.rb |