Technically this is... fine. We get validation on the positional args because we do the self-dot assignments. And the positional args override the keyword args, which they should. But it's still awkward looking. One thing we could do is to have a method like "positional_init :left, :top, :points, :outer, :inner" above, next to the shoes_styles declarations, and then the "super" call could handle it too.
A lot of Shoes drawables have a positional-arg init form and a keyword-arg (technically hashes because Shoes is really old) form.
For instance, these are equivalent:
Right now it's awkward to handle this in initialize. We usually do something like this:
Technically this is... fine. We get validation on the positional args because we do the self-dot assignments. And the positional args override the keyword args, which they should. But it's still awkward looking. One thing we could do is to have a method like "positional_init :left, :top, :points, :outer, :inner" above, next to the shoes_styles declarations, and then the "super" call could handle it too.