Module: Inversion::AbstractClass

Extended by:
ClassMethods
Included in:
Template::CodeTag, Template::Node, Template::Tag
Defined in:
lib/inversion/mixins.rb

Overview

Hides your class’s ::new method and adds a ‘pure_virtual` method generator for defining API methods. If subclasses of your class don’t provide implementations of “pure_virtual” methods, NotImplementedErrors will be raised if they are called.

# AbstractClass
class MyBaseClass
    include Inversion::AbstractClass

    # Define a method that will raise a NotImplementedError if called
    pure_virtual :api_method
end

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Methods included from ClassMethods

inherited, pure_virtual

Class Method Details

.included(mod) ⇒ Object

Inclusion callback



50
51
52
53
54
55
56
# File 'lib/inversion/mixins.rb', line 50

def self::included( mod )
	super
	if mod.respond_to?( :new )
		mod.extend( ClassMethods )
		mod.module_eval { private_class_method :new }
	end
end