Validateur 2.4.2 is released
TL;DR
Validateur is a functional validations library inspired by Ruby’s ActiveModel. Validateur 2.4 is a minor feature release.
Changes Between 2.3.0 and 2.4.0
Clojure 1.4 Support Dropped
The project no longer tries to maintain Clojure 1.4 compatibility.
validate-some
validate-some
tries any number of validators, short-circuiting at the first failed validator. This behavior is similar to or
.
(require '[validateur.validation :refer :all])
(let [v (validate-some
(presence-of :cake-count :message "missing_cake")
(validate-by :cake-count odd? :message "even_cake"))]
"Odd cake counts are valid."
(v {:cake-count 1})
;;=> [true #{}]
"Even cake counts only throw the second error, since the first
validation passed."
(v {:cake-count 2})
;;=> [false {:cake-count #{"even_cake"}}]
"The second validation never gets called and never throws a NPE, as
it would if we just composed them up."
(v {})
;;=> [false {:cake-count #{"missing_cake"}}]
)
Contributed by Sam Ritchie (PaddleGuru).
errors? and errors
Errors in validateur are vectors if keys are nested. If keys are only
one layer deep - :cake
, for example - the error can live at :cake
or [:cake]
.
The errors
function returns the set of errors for some key, nested
or bare. :cake
will return errors stored under [:cake]
and
vice-versa.
errors?
is a boolean wrapper that returns true if some key has
errors, false otherwise.
Contributed by Sam Ritchie (PaddleGuru).
Full Change Log
Validateur change log is available on GitHub.
Validateur is a ClojureWerkz Project
Validateur is part of the group of libraries known as ClojureWerkz, together with
- Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
- Monger, a Clojure MongoDB client for a more civilized age
- Elastisch, a minimalistic Clojure client for ElasticSearch
- Cassaforte, a Clojure Cassandra client built around CQL
- Neocons, a client for the Neo4J REST API
- Welle, a Riak client with batteries included
- Quartzite, a powerful scheduling library
and several others. If you like Validateur, you may also like our other projects.
Let us know what you think on Twitter or on the Clojure mailing list.
About The Author
Michael on behalf of the ClojureWerkz Team