Project

validator

0.01
No commit activity in last 3 years
No release in over 3 years
ActiveModel validations for domains (including TLDs), ip addresses and email addresses with fully localization support.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

 Project Readme

Active Model Validator Travis

This is a ActiveModel validators for domains (including TLDs), ip addresses and email addresses.

Installation

gem install validator

Usage

In your models, the gem provides new validators like :domain, :ip_address or :email

class Model < ActiveRecord::Base
  validates :domain_name, :domain => true
  validates :ip, :ip_address => true
  validates :email_address, :email => true
end

Domain Validator

# validate domain name by full length, label length, TLD existing
validates :domain_name, :domain => true

validates :domain_name, :domain => { :message => 'custom message' }

# custom full domain and label length
validates :domain_name, :domain => { :length => 200, :label_length => 60 }

# skip TLD validation
validates :domain_name, :domain => { :check_tld => false }

Ip Address Validator

# validate ip address
validates :ip, :ip_address => true

# ip address allowed with prefix
validates :ip, :ip_address => { :allow_prefix => true }

# allows only IPv4
validates :ip, :ip_address => { :only => :ipv4 }

# allows only IPv6
validates :ip, :ip_address => { :only => :ipv6 }

validates :ip, :ip_address => { :message => "custom message" }

Email Address Validator

validates :email_address, :email => true

validates :email_address, :email => { :message => 'custom message' }

# custom local part, full domain and label length of email address
validates :email_address, :email => { :local_length => 60, :domain => { :length => 200, :label_length => 60 }}

Localization Tricks

To customize error message, you can use { :message => "your custom message" } or simple use Rails localization en.yml file, for instance:

en:
  errors:
    messages:
      domain:
        length: "your custom length error message"
     ip_address:
       invalid:
         general: "your custom invalid ip address error message"
  activemodel:
    errors:
      messages:
        domain:
          invalid: "custom error message only for activemodel"
       models:
         your_model:
           domain:
             invalid: "custom error message for YourDomain model"

Copyright

Copyright (c) 2011 Vitaliy Nahaylo. See LICENSE for details.