in server/src/main/scala/com/twitter/server/handler/LintHandler.scala [56:91]
private[handler] def jsonMapFromRules(rules: Seq[Rule]): Map[String, Any] = {
val (oks, nots) = rules
.map(rule => rule -> rule())
.partition { case (_, res) => res.isEmpty }
val numIssues = nots.foldLeft(0) {
case (total, (_, issues)) =>
total + issues.size
}
val failureIssues = nots.map {
case (rule, issues) =>
jsonRule(rule) ++
Map("issues" -> issues.map(i => jsonString(i.details)))
}
val okRules = oks.map {
case (rule, _) =>
rule.id
}
Map(
"lint_results" ->
Map(
"metadata" ->
Map(
"num_rules_run" -> rules.size,
"num_rules_ok" -> oks.size,
"num_rules_failed" -> nots.size,
"num_issues_found" -> numIssues
),
"failed_rules" -> failureIssues,
"ok_rules" -> okRules
)
)
}