Module: Inversion::AbstractClass::ClassMethods
- Included in:
- Inversion::AbstractClass
- Defined in:
- lib/inversion/mixins.rb
Overview
Methods to be added to including classes
Instance Method Summary collapse
-
#inherited(subclass) ⇒ Object
Turn subclasses’ new methods back to public.
-
#pure_virtual(*syms) ⇒ Object
Define one or more “virtual” methods which will raise NotImplementedErrors when called via a concrete subclass.
Instance Method Details
#inherited(subclass) ⇒ Object
Turn subclasses’ new methods back to public.
39 40 41 42 |
# File 'lib/inversion/mixins.rb', line 39 def inherited( subclass ) subclass.module_eval { public_class_method :new } super end |
#pure_virtual(*syms) ⇒ Object
Define one or more “virtual” methods which will raise NotImplementedErrors when called via a concrete subclass.
27 28 29 30 31 32 33 34 35 |
# File 'lib/inversion/mixins.rb', line 27 def pure_virtual( *syms ) syms.each do |sym| define_method( sym ) do |*args| raise ::NotImplementedError, "%p does not provide an implementation of #%s" % [ self.class, sym ], caller(1) end end end |