class Module
Public Instance Methods
abstract_method(*names)
click to toggle source
Defines one or more abstract methods with given names in a class or module. When called, the abstract method will raise an ‘AbstractMethodCalled` exception with a helpful message.
@example
class AbstractClass abstract_method :foo end class ConcreteClass < AbstractClass def foo 42 end end AbstractClass.new.foo # raises AbstractMethodCalled ConcreteClass.new.foo # => 42
@param [Array<Symbol>] names the names of defined abstract methods
# File lib/abstract_method.rb, line 32 def abstract_method(*names) definitor = self names.each do |name| define_method name do |*args| raise AbstractMethodCalled, "Called unimplemented abstract method #{self.class}##{name} " + "(defined in #{definitor.class.name.downcase} #{definitor})." end end end