nitc :: ReadmeMetrics :: defaultinit
# All metrics about the readmes
class ReadmeMetrics
super HashMap[MPackage, ReadmeMetric]
# Collect all metric names from submetrics
fun metrics_names: ArraySet[String] do
var keys = new ArraySet[String]
keys.add "MPackage"
for mpackage, values in self do
keys.add_all values.keys
end
return keys
end
# Render `self` as a CsvDocument
fun to_csv: CsvDocument do
var doc = new CsvDocument
doc.header = metrics_names.to_a
var metrics = metrics_names
for mpackage in self.keys do
doc.records.add self[mpackage].to_csv_record(metrics)
end
return doc
end
# Print `self` into stdout
fun to_console(toolcontext: ToolContext) do
for mpackage, values in self do
if not values.has_readme then continue
values.to_console(toolcontext)
end
end
# Collect metrics for all `mpackages`
fun collect_metrics(mpackages: Collection[MPackage]) do
for mpackage in mpackages do
var metric = new ReadmeMetric(mpackage)
metric.collect_metrics
self[mpackage] = metric
end
end
end
src/metrics/readme_metrics.nit:68,1--110,3