Simple Validate
Borrowing ideas from validatable and Rails validations, this is a library for validations for any ruby object.
Installation
Add this line to your application's Gemfile:
gem 'simple_validate'
And then execute:
$ bundle
Or install it yourself as:
$ gem install simple_validate
Usage
Example
require 'simple_validate'
class Person
include SimpleValidate
attr_accessor :name, :age
validates_presence_of :name, :age
validates_numericality_of :age
end
=> p = Person.new
=> #<Person:0x007f9431536408>
=> p.valid?
=> false
=> p.errors
=> #<SimpleValidate::Errors:0x007f94318b4df0
=
{:age=>["can't be empty", "must be a number"],
:name=>["can't be empty"]}>
Presence
validates_presence_of :attribute
Numericality
validates_numericality_of :attribute
Format
validates_format_of :attribute, with: /[A-Z]+/
Length
Possible length options include:
maximum,minimum,in,is.maximum,minimumandistake a single integer andintakes a range.
validates_length_of :attribute, in: 6..9
Inclusion and Exclusion
validates_inclusion_of :domain, in: [:net, :com]
validates_exclusion_of :name, in: [:Bojack, :Horseman]
Options
Custom error messages
- It is possible to pass a custom error message to any validation.
validates_presence_of :attribute, message: 'attribute is required!'
Conditional validation
- It is possible to pass an
ifoption with a proc for a conditional validation
validates_presence_of :attribute, if: Proc.new { true }
Development
$ rake to run the specs
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/nikkypx/simple_validate.
License
The gem is available as open source under the terms of the MIT License.