0.01
No commit activity in last 3 years
No release in over 3 years
URL validator with normalize URL from different charset
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

URL Validator


URL validator makes possible check URI with different charset like: www.詹姆斯.com . For each setted variable to check, it generates the dynamic method called variable_normalized, which return internationalized format of URI. For exmaple www.詹姆斯.com => www.xn--8ws00zhy3a.com. This gem is using addressable gem for internationalizing and beyond regexp for checking valid URI. See in spec kind of valid/invalid URI.

Installation


Include the gem in your Gemfile:

gem "url_validator", "~> 0.0.3"

Or as a plugin:

rails plugin install git://github.com/zdenal/url_validator

Usage


In your class:

class User

  attr_accessor :website
  validates_url :website

end

Then somewhere in code:

@user.website = 'www.詹姆斯.com'
@user2.website = 'website.com'
@user.website_normalized       # =>  www.xn--8ws00zhy3a.com
@user2.website_normalized      # =>  website.com
@user.valid?                   # => true
@user2.valid?                  # => true
@user.website                  # => http://www.詹姆斯.com
@user2.website                 # => http://website.com

Url validator automaticly prefill scheme 'http://' (by schemes options - see below) if is missing in URI.

Options


  • :allow_blank => false/true default = false. The same princip like in others validations.
  • :allow_nil => false/true > default = false. The same princip like in others validations.
  • :message => 'Some custom message' default is: "is not a valid URL". A custom error message.
  • :schemes => ['http', 'https',...] default = ['http', 'https']. Array of URI schemes to validate against. If checked URI missing scheme, then the first scheme of this array is chosen for prefill URI.
  • :prefferred_scheme => 'ftp://' default is the first item from schemes array. If setted, then the validator prefill the checked URI with this scheme if missing some scheme.
  • :if/:unless => ..... the same like in others validations.

If preffered scheme is 'ftp://' and URI is with some scheme http://website.com, then after valid is URI http://website.com.

If preffered scheme is 'ftp://' and URI is without some scheme website.com, then after valid is URI ftp://website.com.

For constriction URI schemes, use option :scheme => ['ftp'], then http://website.com will not valid and website.com will valid and prefilled to ftp://website.com.

Tests


You can find more specification for valid/invalid checking URI in spec folder inside tests.

rake spec  # run tests.