diff options
author | Diego Pereira <diegop@pm.me> | 2024-03-31 21:26:17 -0300 |
---|---|---|
committer | Mauricio Antunes <mauricio.abreua@gmail.com> | 2024-04-01 09:45:35 -0300 |
commit | 290fa9e5699f821b61b2c8f674c7523e66daf699 (patch) | |
tree | 58ec28573cb43fb7aae42ca4d1387f2020e1aad6 | |
parent | a5578c44732ee43611eff8799ed2fa0a5569ceff (diff) |
chore: improve output
-rw-r--r-- | golings/cmd/print.go | 4 | ||||
-rw-r--r-- | golings/exercises/exercises_suite_test.go | 4 | ||||
-rw-r--r-- | golings/exercises/list.go | 9 |
3 files changed, 11 insertions, 6 deletions
diff --git a/golings/cmd/print.go b/golings/cmd/print.go index 89237ac..8a8d0ef 100644 --- a/golings/cmd/print.go +++ b/golings/cmd/print.go @@ -32,11 +32,11 @@ func PrintList(infoFile string) { func RunNextExercise(infoFile string) { ClearScreen() - progress, err:= exercises.Progress(infoFile) + progress, done, total, err:= exercises.Progress(infoFile) if err != nil { fmt.Fprintln(os.Stderr, err) } else { - color.Blue("%.2f%% done.\n\n", progress * 100) + color.Blue("Progress: %d/%d (%.2f%%)\n\n", done, total, progress * 100) } exercise, err := exercises.NextPending(infoFile) diff --git a/golings/exercises/exercises_suite_test.go b/golings/exercises/exercises_suite_test.go index d17fd0d..25f91b0 100644 --- a/golings/exercises/exercises_suite_test.go +++ b/golings/exercises/exercises_suite_test.go @@ -95,9 +95,11 @@ var _ = Describe("Exercises", func() { Describe("Reporting progress", func() { When("half exercises pending", func() { It("reports 50%% progress", func() { - progress, err := exercises.Progress("../fixtures/progress/info.toml") + progress, done, total, err := exercises.Progress("../fixtures/progress/info.toml") Expect(err).NotTo(HaveOccurred()) + Expect(done).To(Equal(1)) + Expect(total).To(Equal(2)) Expect(progress).To(Equal(float32(0.5))) }) }) diff --git a/golings/exercises/list.go b/golings/exercises/list.go index 0c477a1..762389f 100644 --- a/golings/exercises/list.go +++ b/golings/exercises/list.go @@ -59,10 +59,10 @@ func Find(exercise string, infoFile string) (Exercise, error) { return Exercise{}, ErrExerciseNotFound } -func Progress(infoFile string) (float32, error) { +func Progress(infoFile string) (float32, int, int, error) { allExercises, err := List(infoFile) if err != nil { - return 0.0, err + return 0.0, 0, 0, err } done := []Exercise{} for _, exercise := range allExercises { @@ -71,5 +71,8 @@ func Progress(infoFile string) (float32, error) { } } - return float32(len(done)) / float32(len(allExercises)), nil + totalDone := len(done) + total := len(allExercises) + + return float32(totalDone) / float32(total), totalDone, total, nil } |