kemalyst-validators~kemalyst
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