private[handler] def jsonMapFromRules()

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
        )
    )
  }