def METHOD_NAME(self):
    """Numpy style docstring where meta data is scraped from the
    class instance.
    The numpy style is used because it supports multiple outputs.
    """
    obj = self.object()
    # Description
    doc = list()
    doc.append(":program:`{}` {} (v{})".format(obj.identifier, obj.title, obj.version or '', ))
    doc.append('')
    doc.append(obj.abstract)
    doc.append('')
    # Inputs
    doc.append('Parameters')
    doc.append('----------')
    for i in obj.inputs:
        doc.append("{} : {}".format(i.identifier, self.fmt_type(i)))
        doc.append("    {}".format(i.abstract or i.title))
        if i.metadata:
            doc[-1] += " ({})".format(', '.join(['`{} <{}>`_'.format(m.title, m.href) for m in i.metadata]))
    doc.append('')
    # Outputs
    doc.append("Returns")
    doc.append("-------")
    for i in obj.outputs:
        doc.append("{} : {}".format(i.identifier, self.fmt_type(i)))
        doc.append("    {}".format(i.abstract or i.title))
    doc.extend(['', ''])
    # Metadata
    hasref = False
    ref = list()
    ref.append("References")
    ref.append("----------")
    ref.append('')
    for m in obj.metadata:
        if isinstance(m, Metadata):
            title, href = m.title, m.href
        elif type(m) == dict:
            title, href = m['title'], m['href']
        else:
            title, href = None, None
        extra_underscore = ""
        if isinstance(m, MetadataUrl):
            extra_underscore = "_" if m.anonymous else ""
        if title and href:
            ref.append(" - `{} <{}>`_{}".format(title, href, extra_underscore))
            hasref = True
    ref.append('')
    if hasref:
        doc += ref
    return doc