`Behaves`, a better way to define contracts/behaviors between classes in Ruby | Dark Hacker News