From 2fab9deed5be1bcc1b0d459afe7cf91d2d8a4f0d Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 26 Sep 2024 13:32:00 -0500 Subject: [PATCH] patch 2 --- src/gsv.gleam | 11 ++++++----- test/gsv_test.gleam | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/gsv.gleam b/src/gsv.gleam index 0a3fb32..8eb801d 100644 --- a/src/gsv.gleam +++ b/src/gsv.gleam @@ -134,13 +134,14 @@ pub fn from_dicts( let rows = list.map(input, fn(row) { - row - |> dict.to_list - |> list.sort(fn(lhs, rhs) { - string.compare(pair.first(lhs), pair.first(rhs)) + list.fold(headers, [], fn(acc, h) { + case dict.get(row, h) { + Ok(v) -> [v, ..acc] + Error(Nil) -> ["", ..acc] + } }) - |> list.map(pair.second) }) + |> list.map(list.reverse) from_lists([headers, ..rows], separator, line_ending) } diff --git a/test/gsv_test.gleam b/test/gsv_test.gleam index 693a089..3529a88 100644 --- a/test/gsv_test.gleam +++ b/test/gsv_test.gleam @@ -231,6 +231,6 @@ pub fn dicts_with_missing_values_test() { ] gsv.from_dicts(data, ",", gsv.Unix) |> should.equal( - "colour,name,score,youtube\nPink,Lucy,100\nIsaac,99,@IsaacHarrisHolt", + "colour,name,score,youtube\nPink,Lucy,100,\n,Isaac,99,@IsaacHarrisHolt", ) }