1.43
There's a lot of open issues
A long-lived project that still receives updates
Library for validating urls in Rails.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

Runtime

 Project Readme

Validates URL

This gem adds the capability of validating URLs to ActiveRecord and ActiveModel.

Installation

Add this to your Gemfile:

gem "validate_url"

Or install it yourself:

sudo gem install validate_url

Usage

With ActiveRecord

class Pony < ActiveRecord::Base
  # standard validation
  validates :homepage, url: true

  # with allow_nil
  validates :homepage, url: { allow_nil: true }

  # with allow_blank
  validates :homepage, url: { allow_blank: true }

  # without local hostnames
  validates :homepage, url: { no_local: true }

  # with custom schemes
  validates :homepage, url: { schemes: ['https'] }

  # with public suffix database https://publicsuffix.org/
  validates :homepage, url: { public_suffix: true }

  # with Postgres array of urls, described [here](https://guides.rubyonrails.org/active_record_postgresql.html#array)
  validates :homepage, url: { accept_array: true }
end

With ActiveModel

class Unicorn
  include ActiveModel::Validations

  attr_accessor :homepage

  # with legacy syntax (the syntax above works also)
  validates_url :homepage, allow_blank: true
end

With RSpec

Require the matcher in spec_helper.rb or rails_helper.rb:

require 'validate_url/rspec_matcher'

In your spec:

RSpec.describe Unicorn
  it { is_expected.to validate_url_of(:homepage) }
end

I18n

The default error message is not a valid URL. You can pass the message: "my custom error" option to your validation to define your own, custom message.

Contributing

Big thanks to Tanel Suurhans, Tarmo Lehtpuu, Steve Smith and all the contributors! We appreciate all your work on new features and bugfixes.

Credits

Validates URL is created and maintained by PerfectLine, LLC.

License

Validates URL is Copyright © 2010-2014 PerfectLine, LLC. It is free software, and may be redistributed under the terms specified in the LICENSE file.

How to push a new version

  1. Bump the version number automatically:
rake version:bump:patch
rake gemspec
  1. Manually update validate_url.gemspec to remove incorrect strings
  2. Update CHANGELOG.md to describe what is changing in the new version
  3. Commit and push the updated version information, gemspec and changelog to GitHub
  4. Build and push the gem to RubyGems
gem build validate_url.gemspec
gem push validate_url-1.0.8.gem