Provides an URI validator for Rails 3
Ruby
Pull request Compare This branch is 4 commits ahead, 46 commits behind vidibus:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.bundle
config/locales Fixed scope of error messages Apr 30, 2011
lib
spec make specs pass in ruby 1.9.2 Jun 21, 2011
.document
.gitignore
.rspec
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
VERSION
vidibus-validate_uri.gemspec

README.rdoc

Vidibus::ValidateUri

This gem is part of the open source SOA framework Vidibus.

It provides validation of URIs (URLs) to ActiveModel records and ActionControllers in Rails 3.

Installation

Add the dependency to the Gemfile of your application:

gem "vidibus-validate_uri"

Then call bundle install on your console.

Usage

To validate an URI in your ActiveModel record, simply add the uri validator to the field you want to validate as URI:

class Model
  include Mongoid::Document
  field :some_uri
  validates :some_uri, :uri => true
end

To validate an URI in any model, include ActiveModel::Validations:

class Model
  include ActiveModel::Validations
  attr_accessor :uri
  validates :some_uri, :uri => true
end

Just in case you'll need it, a method #valid_uri? is available to controllers that inherit from ActionController::Base. Use it like this:

valid_uri?("something") # => false

Validation options

To restrict validation to a certain protocol, provide a :protocol option:

validates :some_uri, :uri => { :protocol => :rtmp }
validates :some_uri, :uri => { :protocol => [:rtsp, :rtmp] }

To check if the uri is accessible over the network, provide an :accessible option:

validates :some_uri, :uri => { :accessible => true }

Just like for any other ActiveModel validation, you may allow blank values by providing an :allow_blank option:

validates :some_uri, :uri => { :allow_blank => true }

You may provide those validation options to the #valid_uri? method as well:

valid_uri?(your_uri, :accessible => true)
valid_uri?(your_uri, :protocol => :rtmp)
valid_uri?(your_uri, :protocol => [:rtsp, :rtmp])

Copyright

Copyright © 2010 Andre Pankratz. See LICENSE for details.