Skip to content

bhelx/invariance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Invariance

This is an experiment with Design by Contract programming in Ruby. It's not intended for real-world use, it's just for experimenting with property based testing.

Example

class MyClass
  extend Invariance::Methods

  # Contract
  types [Integer, Integer] => Integer
  pre 0, ->(i){i >= 0}
  pre 1, ->(i){i >= 0}
  post do |result, args|
    result >= args.first \
    && result >= args.last
  end
  # Method
  def add(a, b)
    a + b
  end
end

About

Design by Contract in Ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published