Skip to content

Ragmaanir/kontrakt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kontrakt Build Status

Kontrakt provides two macros to implement very simple design-by-contract style checks.

Installation

Add this to your application's shard.yml:

dependencies:
  kontrakt:
    github: ragmaanir/kontrakt

Usage

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

TODO

  • 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 show x and y