github.com/ragmaanir/kontrakt

Simple design by contract for crystal

1 stars
1 dependent
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  kontrakt:
    github: ragmaanir/kontrakt
    version: ~> 0.4.1

Then run:

shards install

shard.yml

Crystal
>= 0.35.1
License
MIT
Author
ragmaanir

Dependencies

Development Dependencies

  • microtest*github: ragmaanir/microtest, branch: masterdev

README

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