Kemalyst Validators
Kemalyst Validators provides a standard way of creating validation for models. The library is built for Kemalyst but can be leveraged by any plain old object.
Installation
Add this to your application's shard.yml
:
dependencies:
kemalyst-validators:
github: drujensen/kemalyst-validators
Usage
Kemalyst::Validators is a mix-in that you include in your class:
require "kemalyst-validators"
class Person
include Kemalyst::Validators
property name : String?
validate :name, "is required", -> (this : Person) { this.name != nil }
validate :name, "must be 3 characters long", -> (this : Person) do
if name = this.name
return name.size > 2
end
return true
end
def initialize(@name = nil)
end
end
The validate
macro takes three parameters. The symbol of the field and the message that will
display when the validation fails. The third is a Proc
that is provided an
instance of self
and returns either true or false.
To check to see if your instance is valid, call valid?
. Each Proc will be
called and if any of them fails, an errors
Array with the messages is
returned.
If no Symbol is provided as a first parameter, the errors will be added to the :base
field.
person = Person.new(name: "JD")
person.valid?.should eq false
person.errors[0].to_s.should eq "Name must be 3 characters long"
Development
RoadMap:
- [] Provide standard validators that can be used per field
Contributing
- Fork it ( https://github.com/drujensen/kemalyst-validators/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- drujensen Dru Jensen - creator, maintainer