module SubclassMustImplement::ClassMethods

The class level macros are defined here.

Public Instance Methods

subclass_must_implement(*method_names, err_message: nil) click to toggle source

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. @param method_names [Enumerable<Symbol>] @param err_message [String]

# 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