1. 8
    1. 4

      Hi, I’m the author of contracts.ruby. This is a well-written post! There’s also a great gem from Simon George that will auto-generate documentation from contracts: https://github.com/sfcgeorge/yard-contracts

      1. 2

        If I understand it correctly, the contracts will still create exceptions at runtime right? Is there any tooling for trying to catch some of the errors statically?

        1. 2

          Correct. There are various incomplete tools for static type-checking. Here are two:

          https://github.com/michaeledgar/laser http://www.cs.umd.edu/projects/PL/druby/

          They are all partial checkers, because it is impossible to typecheck Ruby statically. I have been thinking about writing something that uses contracts to do partial type-checking as well.

          There’s also a language with Ruby syntax that has static typing: http://crystal-lang.org/

      2. 1

        Awesome didn’t know this one. Thanks for contracts.ruby, really love it!