One of the things I'm enjoying the most when it comes to coding in ruby is the sheer variety of ways you can do a particular task. Coming from a Java background, having this flexible so far has been a joy.

However, when I tried to do something that seemed so natural to me, which was overriding a method/constructor, ruby threw an error saying I hadn't provided the correct number of arguments.

The following gist contains the first incorrect way in which I initially tried to do this;

Github Gist

Instead of defining two separate constructors/methods, you need to be more clever in your approach. You will instead need to define a single method/constructor and then use a splat operator or default values in order to expose different ways of invoking them. I feel this results in more complex single methods/constructors compared to  separate methods.