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

Define 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.

Parameters:

  • method_names (Enumerable<Symbol>)
  • err_message (String) (defaults to: nil)


75
76
77
78
79
80
81
82
# File 'lib/subclass_must_implement.rb', line 75

def subclass_must_implement(*method_names, err_message: nil)
  method_names.each do |method_name|
    err = err_message.nil? ? ::SubclassMustImplement.default_error_message(method_name) : "#{err_message}"
    define_method method_name do |*_|
      raise NotImplementedError, err
    end
  end
end