X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FUtils.hs;h=9eb667c115971c10d816f0176e8d9bda2b4a1632;hb=9ff4eb243ae1545c62a5ab2eaf8dcb2f7c40b20d;hp=4da609cd48b0baf42d015c3975f2644a2190f2da;hpb=03585f9c5773f6c0b59497f4f563909576c402b5;p=Rakka.git diff --git a/Rakka/Utils.hs b/Rakka/Utils.hs index 4da609c..9eb667c 100644 --- a/Rakka/Utils.hs +++ b/Rakka/Utils.hs @@ -1,16 +1,19 @@ module Rakka.Utils - ( parseYesOrNo + ( yesOrNo + , parseYesOrNo , maybeA - , defaultTo , deleteIfEmpty - , formatW3CDateTime + , chomp ) where import Control.Arrow import Control.Arrow.ArrowList -import System.Time -import Text.Printf + + +yesOrNo :: Bool -> String +yesOrNo True = "yes" +yesOrNo False = "no" parseYesOrNo :: ArrowChoice a => a String Bool @@ -29,13 +32,6 @@ maybeA a = listA a (x:_) -> returnA -< Just x -defaultTo :: ArrowChoice a => b -> a (Maybe b) b -defaultTo def - = proc m -> case m of - Nothing -> returnA -< def - Just x -> returnA -< x - - deleteIfEmpty :: (ArrowList a, ArrowChoice a) => a String String deleteIfEmpty = proc str -> do case str of @@ -43,34 +39,5 @@ deleteIfEmpty _ -> returnA -< str -formatW3CDateTime :: CalendarTime -> String -formatW3CDateTime time - = formatDateTime time ++ formatTimeZone time - where - formatDateTime :: CalendarTime -> String - formatDateTime time - = printf "%04d-%02d-%02dT%02d:%02d:%02d" - (ctYear time) - (fromEnum (ctMonth time) + 1) - (ctDay time) - (ctHour time) - (ctMin time) - (ctSec time) - - formatTimeZone :: CalendarTime -> String - formatTimeZone time - = case ctTZ time - of offset | offset < 0 -> '-':(showTZ $ negate offset) - | offset == 0 -> "Z" - | otherwise -> '+':(showTZ offset) - - showTZ :: Int -> String - showTZ offset - = let hour = offset `div` 3600 - min = (offset - hour * 3600) `div` 60 - in - show2 hour ++ ":" ++ show2 min - - show2 :: Int -> String - show2 n | n < 10 = '0':(show n) - | otherwise = show n \ No newline at end of file +chomp :: String -> String +chomp = reverse . snd . break (/= '\n') . reverse