diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2015-03-30 19:37:46 +0900 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2015-03-30 19:37:46 +0900 |
commit | 9769ee943ebd4c03388df565363f0e9f9e2a2428 (patch) | |
tree | 4428e3b2a9c4ab3237576c999d696636c638240f | |
parent | dd31aa6d4d41176854976a94a83de37c47a89778 (diff) | |
download | srem-9769ee943ebd4c03388df565363f0e9f9e2a2428.tar.gz |
implement parseEventsCSV
-rw-r--r-- | src/Utility/EventCache.hs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Utility/EventCache.hs b/src/Utility/EventCache.hs index e97cc1b..c19e122 100644 --- a/src/Utility/EventCache.hs +++ b/src/Utility/EventCache.hs @@ -66,7 +66,16 @@ readEventsCSV :: FilePath -> IO [Reminder] readEventsCSV f = readFile f >>= return . parseEventsCSV parseEventsCSV :: String -> [Reminder] -parseEventsCSV = undefined +parseEventsCSV = foldr step [] . lines + where + step r rs = maybe rs (: rs) $ parseEventCSV r + +parseEventCSV :: String -> Maybe Reminder +parseEventCSV line = do + hourString:minuteString:text:[] <- return $ splitOn "," line + hour <- readMaybe hourString + minute <- readMaybe minuteString + makeReminder' hour minute text makeEventsCSV :: [Reminder] -> String makeEventsCSV = unlines . foldr ((:) . makeEventCSV) [] |