Module: SubclassMustImplement::ClassMethods

Defined in:
lib/subclass_must_implement.rb

Overview

The class level macros are defined here.

Instance Method Summary collapse

Instance Method Details

#subclass_must_implement(*method_names, err_message: nil) ⇒ Object

Defines a method for each method name that raises a NotImplementedError when called. Pass in a custom error message if desired using the err_message named argument.



65
66
67
68
69
70
71
72
# File 'lib/subclass_must_implement.rb', line 65

def subclass_must_implement(*method_names, err_message: nil)
  method_names.each do |method_name|
    err = err_message.nil? ? "`#{method_name}` must be implemented in a subclass." : "#{err_message}"
    define_method method_name do |*_|
      raise NotImplementedError, err
    end
  end
end