def udef_msg(name_error, block)
      prefix = "Undefined template parameter: #{name_error}"
      if block.respond_to?(:source)
        format("%s: %s", prefix, block.source.strip)
      else
        prefix
      end
    end
def udef_msg(name_error, block)
      prefix = "Undefined template parameter: #{name_error}"
      if block.respond_to?(:source)
        format("%s: %s", prefix, block.source.strip)
      else
        prefix
      end
    end
Given a `NameError` and the block, return a string like:

 Undefined template parameter:
 undefined local variable or method `banana' for ..:
 template_param(::Banana, allow_nil: true) { banana }

 `Proc#source` is provided by the `method_source` gem.

 @api private