Uninheritable
Allows an object to declare itself as unable to be subclassed. The technique behind this is very simple (redefinition of inherited), so this just provides an easier way to do the same thing with a consistent error message.
Usage
class A extend Uninheritable end class B < A; end # => raises TypeError
Methods
Public Instance methods
Redefines a class’s inherited definition to prevent subclassing of the class extended by this module.
[ show source ]
# File lib/facets/more/uninheritable.rb, line 41 def inherited(klass) raise TypeError, "Class #{self} cannot be subclassed." end