Kontrakt provides two macros to implement very simple design-by-contract style checks.
Add this to your application's shard.yml
:
dependencies:
kontrakt:
github: ragmaanir/kontrakt
require "kontrakt"
Kontrakt.precondition(1 == 5) # raises
Kontrakt.postcondition(3 == 3 && true != false) # passes
To disable the conditions set DISABLE_CONTRACTS env var:
DISABLE_CONTRACTS=1 crystal spec
- output the values of the variables used
- evaluate partial expressions like power_assert.cr. maybe only show leaf-values, e.g. dont show
x && y
, just showx
andy