All About Struct
I build small little data classes all the time and there's a reason for that: Ruby makes it trivial to do so. That's a big win because we all know that what is a trivial data class today will be tomorrow's super object, right? If I start out using a simple
Hash, I'll probably end up redoing most of the logic at both ends eventually. Or I can start with the trivial class and grow it naturally.
The key to all this though is that I don't write those classes myself! That's what Ruby is for. More specifically, you need to learn to love
Struct. Allow me to show you what I mean.
Imagine I need a basic class to represent a
Contact. Ruby gives us so many shortcuts that the class could be very small even without
class Contact def initialize(first, last, email) @first = first @last = last @email = email end attr_accessor :first, :last, :email end
You could shorten that up more with some multiple assignment if you like, but that's the basics. Now using
Structis even easier: