package io.gitlab.arturbosch.detekt.cli.console

import io.gitlab.arturbosch.detekt.api.ConsoleReport
import io.gitlab.arturbosch.detekt.api.Detektion
import io.gitlab.arturbosch.detekt.api.PREFIX
import io.gitlab.arturbosch.detekt.api.format

/**
 * @author Artur Bosch
 */
class ProjectStatisticsReport : ConsoleReport() {

	override val priority: Int = 10

	override fun render(detektion: Detektion): String? {
		val metrics = detektion.metrics
		if (metrics.isEmpty()) return null
		return with(StringBuilder()) {
			append("Project Statistics:".format())
			metrics.forEach { append(it.toString().format(PREFIX)) }
			toString()
		}
	}
}

package io.gitlab.arturbosch.detekt.cli.console

import io.gitlab.arturbosch.detekt.api.ConsoleReport
import io.gitlab.arturbosch.detekt.api.Detektion
import io.gitlab.arturbosch.detekt.api.PREFIX
import io.gitlab.arturbosch.detekt.api.format

/**
 * @author Artur Bosch
 */
class ProjectStatisticsReport : ConsoleReport() {

	override val priority: Int = 10

	override fun render(detektion: Detektion): String? {
		val metrics = detektion.metrics
		if (metrics.isEmpty()) return null
		return with(StringBuilder()) {
			append("Project Statistics:".format())
			metrics.sortedBy { it.priority }
					.reversed()
					.forEach { append(it.toString().format(PREFIX)) }
			toString()
		}
	}
}

Sort project metrics by priority
Sort project metrics by priority

MyDogTom/detekt,arturbosch/detekt,Mauin/detekt,rock3r/detekt,Mauin/detekt,arturbosch/detekt,rock3r/detekt,Mauin/detekt,Mauin/detekt,rock3r/detekt,arturbosch/detekt