From bb509c9800069146e50936dae6af434f98af9cb0 Mon Sep 17 00:00:00 2001 From: Joscha Date: Fri, 5 Jan 2018 18:38:24 +0000 Subject: [PATCH] Fix whitespace when converting to string --- src/Cards.hs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/Cards.hs b/src/Cards.hs index 63306a4..02e08c2 100644 --- a/src/Cards.hs +++ b/src/Cards.hs @@ -225,19 +225,25 @@ nomToInteger = (truncate :: Double -> Integer) . realToFrac elementsToString :: Elements -> String elementsToString (Elements e) = let elms = map snd $ sortBy (compare `on` fst) $ Map.toList e - in unlines $ intersperse "" $ map (\x -> elementToString x) elms + in unlines $ intercalate ["", ""] $ map (\x -> elementToString x) elms -elementToString :: Element -> String -elementToString (EComment str) = unlines ['#' : str] +elementToString :: Element -> [String] +elementToString (EComment str) = ['#' : str] elementToString (ECard card) = cardToString card -cardToString :: Card -> String -cardToString Card{sides=s, tier=t, lastChecked=lc, offset=o} = - let info = ":: {\"level\": " ++ (show $ fromEnum t) ++ - ", \"last_checked\": " ++ formatTime defaultTimeLocale "%s" lc ++ - ", \"delay\": " ++ (show $ nomToInteger o) ++ - "}" - in unlines $ info : intersperse "::" s +cardToString :: Card -> [String] +cardToString Card{sides=s, tier=t, lastChecked=lc, offset=o} + | t == minBound = + let info = ":: {\"level\": " ++ (show $ fromEnum t) ++ + ", \"last_checked\": " ++ formatTime defaultTimeLocale "%s" lc ++ + "}" + in info : intersperse "::" s + | otherwise = + let info = ":: {\"level\": " ++ (show $ fromEnum t) ++ + ", \"last_checked\": " ++ formatTime defaultTimeLocale "%s" lc ++ + ", \"delay\": " ++ (show $ nomToInteger o) ++ + "}" + in info : intersperse "::" s {- - Parsing