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

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