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
-
.included(mod) ⇒ Object
Inclusion callback.
Methods included from ClassMethods
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 |