class RDoc::Stats

def report_class_module cm

def report_class_module cm
  return if cm.fully_documented? and @coverage_level.zero?
  return unless cm.display?
  report = RDoc::Markup::Document.new
  if cm.in_files.empty? then
    report << RDoc::Markup::Paragraph.new("#{cm.definition} is referenced but empty.")
    report << RDoc::Markup::Paragraph.new("It probably came from another project.  I'm sorry I'm holding it against you.")
    return report
  elsif cm.documented? then
    documented = true
    klass = RDoc::Markup::Verbatim.new("#{cm.definition} # is documented\n")
  else
    report << RDoc::Markup::Paragraph.new('In files:')
    list = RDoc::Markup::List.new :BULLET
    cm.in_files.each do |file|
      para = RDoc::Markup::Paragraph.new file.full_name
      list << RDoc::Markup::ListItem.new(nil, para)
    end
    report << list
    report << RDoc::Markup::BlankLine.new
    klass = RDoc::Markup::Verbatim.new("#{cm.definition}\n")
  end
  klass << "\n"
  body = yield.flatten # HACK remove #flatten
  if body.empty? then
    return if documented
    klass.parts.pop
  else
    klass.parts.concat body
  end
  klass << "end\n"
  report << klass
  report
end