I'd be interested to hear your experiences with the gem. Have you found it makes it easier to write applications? Do you write fewer tests? Do you use it everywhere in a codebase or only in particular places?
Using contracts makes it easier to catch bugs earlier: type error is caught immediately rather than further downstream where it's harder to debug.
For my large-scale in-house test frameworks, I've used it throughout.
For code that will become a gem, though, I don't use it, because it creates a dependency that the potential user might find unacceptable.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.