Module: AbstractType::ClassMethods
- Defined in:
- lib/abstract_type.rb
Instance Method Summary collapse
-
#abstract_method(*names) ⇒ self
Create abstract instance methods.
-
#abstract_singleton_method(*names) ⇒ self
private
Create abstract singleton methods.
-
#new ⇒ Object
Instantiate a new object.
Instance Method Details
#abstract_method(*names) ⇒ self
Create abstract instance methods
59 60 61 62 |
# File 'lib/abstract_type.rb', line 59 def abstract_method(*names) names.each { |name| create_abstract_instance_method(name) } self end |
#abstract_singleton_method(*names) ⇒ self
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Create abstract singleton methods
79 80 81 82 |
# File 'lib/abstract_type.rb', line 79 def abstract_singleton_method(*names) names.each { |name| create_abstract_singleton_method(name) } self end |
#new ⇒ Object
Instantiate a new object
Ensures that the instance cannot be of the abstract type and must be a descendant.
36 37 38 39 40 41 42 |
# File 'lib/abstract_type.rb', line 36 def new(*) if superclass.equal?(Object) raise NotImplementedError, "#{inspect} is an abstract type" else super end end |