class Module

def redefine_method(method, &block)

block as its body.
Replaces the existing method definition, if there is one, with the passed
def redefine_method(method, &block)
  visibility = method_visibility(method)
  silence_redefinition_of_method(method)
  define_method(method, &block)
  send(visibility, method)
end