Hacker News new | past | comments | ask | show | jobs | submit login

That Ruby looks excellent. I hadn't realized the contracts gem existed.

So much of what people redundantly cram into test suites could be handled with simple contracts.




If, like me, you were wondering how contracts.ruby works, the comments in here are quite instructive: https://github.com/egonSchiele/contracts.ruby/blob/master/li...


very cool.


Ruby is duck-typed, so it is advantageous to write code and tests that are not tied to classes at all.

http://www.poodr.com/ goes in-depth about this.


Well, the same kind of contracts approach could be used to enforce a duck-typed set of behaviors:

  [:quacks], [:barks] => Maybe[:flies]
Some Rubyists get pedantic about duck typing. It's just a tool to design good systems, not an article of faith.


Yeah the contract here is a form of nominative type checking, it could just as well be structural.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: