This talk explains the concept of traits, specifically the model described in the 2006 paper Traits: A Mechanism for Fine-grained Reuse by Ducasse et al.
It looks at differing trait implementations, which specific everyday design problems traits solve and how they differ from Ruby modules as a method for code reuse.
Finally it explores how some features introduced in Ruby 2 allow us to implement Ducasse's traits in Ruby and how to compose a class without touching the class hierarchy at all.
https://github.com/joecorcoran/fabrik
https://github.com/joecorcoran/talks/tree/master/traits