Hello,
for some code I am writing, I'd like to have a couple of abstract
classes. However I am not very sure how to go about it in Ruby.

Ideally all I would need is:
1) The class cannot be instantiated
and/or
2) The class is not visible outside of the module it comes in

What would be the canonical way to go about this in Ruby? Should I use
a mix-in module?

Ideally I would prefer to use a class since all the subclasses have a
similar instantiation so I'd like to code it only once and use
super(), but then the user himself may try to instantiate it breaking
the whole "magic". :)

Thank you
Diego