hackernews-0.3.0.0: src/Web/HackerNews/Util.hs
-- |
-- Module : Web.HackerNews.Util
-- Copyright : (c) David Johnson, Konstantin Zudov, 2014
-- Maintainer : djohnson.m@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Web.HackerNews.Util where
import Data.Monoid (Monoid, mempty)
import Data.Text (Text)
import qualified Data.Text as T
import Data.Time (UTCTime)
import Data.Time.Clock.POSIX (posixSecondsToUTCTime)
------------------------------------------------------------------------------
-- | Convert `Integer` to `UTCTime`
fromSeconds :: Integer -> UTCTime
fromSeconds = posixSecondsToUTCTime . fromInteger
------------------------------------------------------------------------------
-- | Convert `Show` constrained a to `Text`
toText :: Show a => a -> Text
toText = T.pack . show
------------------------------------------------------------------------------
-- | Turns empty monoids into Nothing
-- `listToMaybe` generalized for monoids
monoidToMaybe :: (Eq a, Monoid a) => a -> Maybe a
monoidToMaybe m = if m == mempty then Nothing else Just m