Skip to content
This repository was archived by the owner on Jul 5, 2025. It is now read-only.

Commit d00dfe0

Browse files
committed
Metrics printer cleanup (diff. between count and duration)
1 parent 4fd8c42 commit d00dfe0

23 files changed

+197
-61
lines changed

src/commonMain/kotlin/Main.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import calculator.di.provideCycleTimeCalculator
1+
import calculator.di.provideGenericLongMetricCalculators
22
import components.data.TeamHistoryConfig
33
import history.TeamHistory
44
import history.github.di.provideGitHubHistory
@@ -65,11 +65,12 @@ fun main(): Unit = runBlocking {
6565
}
6666

6767
// OTHER EXPERIMENTS
68-
val cycleTimeCalculator = provideCycleTimeCalculator()
69-
val cycleTime = cycleTimeCalculator.calculate(stored)
70-
println("\n== Cycle Time ==")
71-
println(cycleTime.simpleFormat)
72-
println("-- CYCLE TIME --\n")
68+
provideGenericLongMetricCalculators().forEach {
69+
val metric = it.calculate(stored)
70+
println("\n== ${metric.name} ==")
71+
println(metric.simpleFormat)
72+
println("-- ${metric.name} --\n")
73+
}
7374
} catch (e: Throwable) {
7475
println("CRITICAL FAILURE! \n\n * ${e.message} * \n\n")
7576
e.printStackTrace()

src/commonMain/kotlin/calculator/GenericLongMetricCalculator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package calculator
22

33
import components.data.Repository
4-
import components.metrics.GenericLongMetric
4+
import components.metrics.GenericCountMetric
55

6-
interface GenericLongMetricCalculator<out T : GenericLongMetric> {
6+
interface GenericLongMetricCalculator<out T : GenericCountMetric> {
77

88
fun calculate(repositories: List<Repository>): T
99

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,67 @@
11
package calculator.di
22

3+
import calculator.CodeReviewChangeLinesAddedCalculator
4+
import calculator.CodeReviewChangeLinesDeletedCalculator
5+
import calculator.CodeReviewChangeLinesTotalCalculator
6+
import calculator.CodeReviewChangesAddedCalculator
7+
import calculator.CodeReviewChangesModifiedCalculator
8+
import calculator.CodeReviewChangesRemovedCalculator
9+
import calculator.CodeReviewChangesTotalCalculator
10+
import calculator.CodeReviewCommentsAuthoredCalculator
11+
import calculator.CodeReviewCommentsReceivedCalculator
12+
import calculator.CodeReviewFeedbacksApprovedCalculator
13+
import calculator.CodeReviewFeedbacksPostponedCalculator
14+
import calculator.CodeReviewFeedbacksRejectedCalculator
15+
import calculator.CodeReviewFeedbacksTotalCalculator
16+
import calculator.CodeReviewsCalculator
317
import calculator.CycleTimeCalculator
418
import kotlinx.datetime.Clock
519
import kotlinx.datetime.Instant
620

21+
fun provideCodeReviewChangeLinesAddedCalculator() = CodeReviewChangeLinesAddedCalculator()
22+
23+
fun provideCodeReviewChangeLinesDeletedCalculator() = CodeReviewChangeLinesDeletedCalculator()
24+
25+
fun provideCodeReviewChangeLinesTotalCalculator() = CodeReviewChangeLinesTotalCalculator()
26+
27+
fun provideCodeReviewChangesAddedCalculator() = CodeReviewChangesAddedCalculator()
28+
29+
fun provideCodeReviewChangesModifiedCalculator() = CodeReviewChangesModifiedCalculator()
30+
31+
fun provideCodeReviewChangesRemovedCalculator() = CodeReviewChangesRemovedCalculator()
32+
33+
fun provideCodeReviewChangesTotalCalculator() = CodeReviewChangesTotalCalculator()
34+
35+
fun provideCodeReviewCommentsAuthoredCalculator() = CodeReviewCommentsAuthoredCalculator()
36+
37+
fun provideCodeReviewCommentsReceivedCalculator() = CodeReviewCommentsReceivedCalculator()
38+
39+
fun provideCodeReviewFeedbacksApprovedCalculator() = CodeReviewFeedbacksApprovedCalculator()
40+
41+
fun provideCodeReviewFeedbacksPostponedCalculator() = CodeReviewFeedbacksPostponedCalculator()
42+
43+
fun provideCodeReviewFeedbacksRejectedCalculator() = CodeReviewFeedbacksRejectedCalculator()
44+
45+
fun provideCodeReviewFeedbacksTotalCalculator() = CodeReviewFeedbacksTotalCalculator()
46+
47+
fun provideCodeReviewsCalculator() = CodeReviewsCalculator()
48+
749
fun provideCycleTimeCalculator(now: Instant = Clock.System.now()) = CycleTimeCalculator(now)
50+
51+
fun provideGenericLongMetricCalculators() = listOf(
52+
provideCodeReviewChangeLinesAddedCalculator(),
53+
provideCodeReviewChangeLinesDeletedCalculator(),
54+
provideCodeReviewChangeLinesTotalCalculator(),
55+
provideCodeReviewChangesAddedCalculator(),
56+
provideCodeReviewChangesModifiedCalculator(),
57+
provideCodeReviewChangesRemovedCalculator(),
58+
provideCodeReviewChangesTotalCalculator(),
59+
provideCodeReviewCommentsAuthoredCalculator(),
60+
provideCodeReviewCommentsReceivedCalculator(),
61+
provideCodeReviewFeedbacksApprovedCalculator(),
62+
provideCodeReviewFeedbacksPostponedCalculator(),
63+
provideCodeReviewFeedbacksRejectedCalculator(),
64+
provideCodeReviewFeedbacksTotalCalculator(),
65+
provideCodeReviewsCalculator(),
66+
provideCycleTimeCalculator(),
67+
)

src/commonMain/kotlin/components/metrics/CodeReviewChangeLinesAdded.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangeLinesAdded(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangeLinesAdded::class.simpleName!!
16+
override val name = CodeReviewChangeLinesAdded::class.simpleName!!
1717

1818
}

src/commonMain/kotlin/components/metrics/CodeReviewChangeLinesDeleted.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangeLinesDeleted(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangeLinesDeleted::class.simpleName!!
16+
override val name = CodeReviewChangeLinesDeleted::class.simpleName!!
1717

1818
}

src/commonMain/kotlin/components/metrics/CodeReviewChangeLinesTotal.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangeLinesTotal(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangeLinesTotal::class.simpleName!!
16+
override val name = CodeReviewChangeLinesTotal::class.simpleName!!
1717

1818
}

src/commonMain/kotlin/components/metrics/CodeReviewChangesAdded.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangesAdded(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangesAdded::class.simpleName!!
16+
override val name = CodeReviewChangesAdded::class.simpleName!!
1717

1818
}

src/commonMain/kotlin/components/metrics/CodeReviewChangesModified.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangesModified(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangesModified::class.simpleName!!
16+
override val name = CodeReviewChangesModified::class.simpleName!!
1717

1818
}

src/commonMain/kotlin/components/metrics/CodeReviewChangesRemoved.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangesRemoved(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangesRemoved::class.simpleName!!
16+
override val name = CodeReviewChangesRemoved::class.simpleName!!
1717

1818
}

src/commonMain/kotlin/components/metrics/CodeReviewChangesTotal.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ data class CodeReviewChangesTotal(
1111
override val perCodeReview: Map<CodeReview, Long>,
1212
override val perRepository: Map<Repository, Long>,
1313
override val perDiscussion: Map<Discussion, Long> = emptyMap(),
14-
) : GenericLongMetric {
14+
) : GenericCountMetric {
1515

16-
override val metricName = CodeReviewChangesTotal::class.simpleName!!
16+
override val name = CodeReviewChangesTotal::class.simpleName!!
1717

1818
}

0 commit comments

Comments
 (0)