( , Addressable)
URL.
Ruby URI Addressable, URL . URI, Addressable tlds.
Usage example:
require 'addressable/uri'
Addressable::URI.parse(".")
uri = Addressable::URI.parse("http://example.com/path/to/resource/")
uri.scheme
uri.host
uri.path
And you can create a custom check, for example:
class Example
include ActiveModel::Validations
class UrlValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
begin
uri = Addressable::URI.parse(value)
if !["http","https","ftp"].include?(uri.scheme)
raise Addressable::URI::InvalidURIError
end
rescue Addressable::URI::InvalidURIError
record.errors[attribute] << "Invalid URL"
end
end
end
validates :field, :url => true
end
Source code
source
share