aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2015-03-30 19:37:46 +0900
committerSean Whitton <spwhitton@spwhitton.name>2015-03-30 19:37:46 +0900
commit9769ee943ebd4c03388df565363f0e9f9e2a2428 (patch)
tree4428e3b2a9c4ab3237576c999d696636c638240f
parentdd31aa6d4d41176854976a94a83de37c47a89778 (diff)
downloadsrem-9769ee943ebd4c03388df565363f0e9f9e2a2428.tar.gz
implement parseEventsCSV
-rw-r--r--src/Utility/EventCache.hs11
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) []