Contracts let you clearly -- even beautifully -- express how your code behaves, and free you from writing tons of boilerplate, defensive code. You can think of contracts as assert on steroids. WWW: https://github.com/egonSchiele/contracts.ruby