> Here is one way. Its not very satisfying, as you have no way to access
> the initialize method on any parent classes of the Animal class (such
> as ActiveRecord)...
>
Is it possible to pull of maybe using some clever passing back and
forth up through the super chain?

raise 'Invalid instantiation of class' unless
child_class_name.constantize <= Animal

or maybe detecting caller and raising unless it's a child class?