Blood Contracts is a simple and agile Ruby data validation tool inspired by refinement types and functional approach.
- Powerful. Algebraic Data Type guarantees that gem is enough to implement any kind of complex data validation, while Functional Approach gives you full control over validation outcomes.
- Simple. You could write your first Refinment Type as simple as single Ruby method in single class.
- Brings transparency. Comes with instrumentation tools, so now you will exactly know how often each type matches in your production.
- Rubyish. DSL is inspired by Ruby Struct. If you love Ruby way you’d like the BloodContracts types.
- Born in production. Created on basis of eBaymag project, used as a tool to control and monitor data inside API communication.