Module: Uninheritable
- Defined in:
- lib/more/facets/uninheritable.rb
Overview
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
Instance Method Summary collapse
-
#inherited(klass) ⇒ Object
Redefines a class’s #inherited definition to prevent subclassing of the class extended by this module.
Instance Method Details
#inherited(klass) ⇒ Object
Redefines a class’s #inherited definition to prevent subclassing of the class extended by this module.
51 52 53 |
# File 'lib/more/facets/uninheritable.rb', line 51 def inherited(klass) raise TypeError, "Class #{self} cannot be subclassed." end |