A Clojure library for verifying map data
Add the following dependency to your project.clj file:
[audit "0.1.1"]
The audit function takes two maps, the audit-map and the value-map.
If the two maps don't have the same keys, the audit function will throw an exception.
The value map will be normal data
(def value-map {:url "http://www.somepage.com"
:title "the number 1"
:time 400})The audit map has a vector of functions as a value for each keyword.
Each function will be ran on the input of the matching value-map keyword.
(def audit-map {:url [string? (regex #"http://www.")]
:title [string? (regex #"\d")]
:time [number? #(> % 300)]}The audit map does not reject empty collection, so the function must handle that possibility.
Calling the audit function
(audit audit-map value-map)Will return a map, with two important keys valid-audit and failure-reason
valid-audit will be true if audit was valid and false otherwise
if valid-audit is false, failure-reason will return a string saying what key and input caused the failure.
Copyright © 2014 Michael Doaty
Distributed under the Eclipse Public License, same as Clojure.