class RDoc::Stats

def calculate

def calculate
  return if @doc_items
  ucm = @store.unique_classes_and_modules
  classes = @store.unique_classes.reject { |cm| cm.full_name == 'Object' }
  constants = []
  ucm.each { |cm| constants.concat cm.constants }
  methods = []
  ucm.each { |cm| methods.concat cm.method_list }
  attributes = []
  ucm.each { |cm| attributes.concat cm.attributes }
  @num_attributes, @undoc_attributes = doc_stats attributes
  @num_classes,    @undoc_classes    = doc_stats classes
  @num_constants,  @undoc_constants  = doc_stats constants
  @num_methods,    @undoc_methods    = doc_stats methods
  @num_modules,    @undoc_modules    = doc_stats @store.unique_modules
  @num_items =
    @num_attributes +
    @num_classes +
    @num_constants +
    @num_methods +
    @num_modules +
    @num_params
  @undoc_items =
    @undoc_attributes +
    @undoc_classes +
    @undoc_constants +
    @undoc_methods +
    @undoc_modules +
    @undoc_params
  @doc_items = @num_items - @undoc_items
end