From 81ec09bf63549b3b0ee9456f8e3118ee4b66dd3e Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 11 Mar 2013 07:29:43 +0200 Subject: [PATCH] Some more rearranging --- yesod-core/Yesod/Content.hs | 19 ----------------- .../Yesod/Core/{Time.hs => Internal/Util.hs} | 21 +++++++++++++++++-- yesod-core/Yesod/Core/Types.hs | 2 +- yesod-core/Yesod/Handler.hs | 9 ++------ yesod-core/Yesod/Internal/Session.hs | 2 +- yesod-core/yesod-core.cabal | 2 +- 6 files changed, 24 insertions(+), 31 deletions(-) rename yesod-core/Yesod/Core/{Time.hs => Internal/Util.hs} (53%) diff --git a/yesod-core/Yesod/Content.hs b/yesod-core/Yesod/Content.hs index 41f6d208..dcda9da9 100644 --- a/yesod-core/Yesod/Content.hs +++ b/yesod-core/Yesod/Content.hs @@ -40,10 +40,6 @@ module Yesod.Content , RepHtmlJson (..) , RepPlain (..) , RepXml (..) - -- * Utilities - , formatW3 - , formatRFC1123 - , formatRFC822 ) where import Data.Maybe (mapMaybe) @@ -52,9 +48,6 @@ import qualified Data.ByteString.Lazy as L import Data.Text.Lazy (Text, pack) import qualified Data.Text as T -import Data.Time -import System.Locale - import qualified Data.Text.Encoding import qualified Data.Text.Lazy.Encoding @@ -222,18 +215,6 @@ typeOctet = "application/octet-stream" simpleContentType :: ContentType -> ContentType simpleContentType = fst . B.breakByte 59 -- 59 == ; --- | Format a 'UTCTime' in W3 format. -formatW3 :: UTCTime -> T.Text -formatW3 = T.pack . formatTime defaultTimeLocale "%FT%X-00:00" - --- | Format as per RFC 1123. -formatRFC1123 :: UTCTime -> T.Text -formatRFC1123 = T.pack . formatTime defaultTimeLocale "%a, %d %b %Y %X %Z" - --- | Format as per RFC 822. -formatRFC822 :: UTCTime -> T.Text -formatRFC822 = T.pack . formatTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %z" - instance HasReps a => HasReps (DontFullyEvaluate a) where chooseRep (DontFullyEvaluate a) = fmap (fmap (fmap ContentDontEvaluate)) $ chooseRep a diff --git a/yesod-core/Yesod/Core/Time.hs b/yesod-core/Yesod/Core/Internal/Util.hs similarity index 53% rename from yesod-core/Yesod/Core/Time.hs rename to yesod-core/Yesod/Core/Internal/Util.hs index 371159df..1e705795 100644 --- a/yesod-core/Yesod/Core/Time.hs +++ b/yesod-core/Yesod/Core/Internal/Util.hs @@ -1,12 +1,17 @@ -module Yesod.Core.Time +module Yesod.Core.Internal.Util ( putTime , getTime + , formatW3 + , formatRFC1123 + , formatRFC822 ) where import Data.Int (Int64) import Data.Serialize (Get, Put, Serialize (..)) +import qualified Data.Text as T import Data.Time (Day (ModifiedJulianDay, toModifiedJulianDay), - DiffTime, UTCTime (..)) + DiffTime, UTCTime (..), formatTime) +import System.Locale (defaultTimeLocale) putTime :: UTCTime -> Put putTime (UTCTime d t) = @@ -27,3 +32,15 @@ posixDayLength_int64 = 86400 diffTimeScale :: DiffTime diffTimeScale = 1e12 + +-- | Format a 'UTCTime' in W3 format. +formatW3 :: UTCTime -> T.Text +formatW3 = T.pack . formatTime defaultTimeLocale "%FT%X-00:00" + +-- | Format as per RFC 1123. +formatRFC1123 :: UTCTime -> T.Text +formatRFC1123 = T.pack . formatTime defaultTimeLocale "%a, %d %b %Y %X %Z" + +-- | Format as per RFC 822. +formatRFC822 :: UTCTime -> T.Text +formatRFC822 = T.pack . formatTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %z" diff --git a/yesod-core/Yesod/Core/Types.hs b/yesod-core/Yesod/Core/Types.hs index b8c3e1d9..f85084c0 100644 --- a/yesod-core/Yesod/Core/Types.hs +++ b/yesod-core/Yesod/Core/Types.hs @@ -50,7 +50,7 @@ import Text.Blaze.Html (Html) import Text.Hamlet (HtmlUrl) import Text.Julius (JavascriptUrl) import Web.Cookie (SetCookie) -import Yesod.Core.Time (getTime, putTime) +import Yesod.Core.Internal.Util (getTime, putTime) import Yesod.Core.Trans.Class (MonadLift (..)) import Yesod.Routes.Class (RenderRoute (..)) diff --git a/yesod-core/Yesod/Handler.hs b/yesod-core/Yesod/Handler.hs index b8379b5a..dbf25d75 100644 --- a/yesod-core/Yesod/Handler.hs +++ b/yesod-core/Yesod/Handler.hs @@ -1,16 +1,11 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeSynonymInstances #-} --------------------------------------------------------- -- -- Module : Yesod.Handler @@ -157,8 +152,8 @@ import qualified Network.Wai.Parse as NWP import Text.Shakespeare.I18N (RenderMessage (..)) import Web.Cookie (SetCookie (..)) import Yesod.Content (HasReps, chooseRep, - formatRFC1123, toContent) - + toContent) +import Yesod.Core.Internal.Util (formatRFC1123) import Text.Blaze.Html (preEscapedToMarkup, toHtml) import Control.Monad.Trans.Resource (ResourceT, runResourceT) diff --git a/yesod-core/Yesod/Internal/Session.hs b/yesod-core/Yesod/Internal/Session.hs index 5d1c3cb2..ff9f93cc 100644 --- a/yesod-core/Yesod/Internal/Session.hs +++ b/yesod-core/Yesod/Internal/Session.hs @@ -14,7 +14,7 @@ import Data.ByteString (ByteString) import Control.Concurrent (forkIO, killThread, threadDelay) import Control.Monad (forever, guard) import Yesod.Core.Types -import Yesod.Core.Time +import Yesod.Core.Internal.Util import qualified Data.IORef as I encodeClientSession :: CS.Key diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index f6501cc7..84a52612 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -98,7 +98,7 @@ library Yesod.Core.Internal.Request other-modules: Yesod.Internal.Core Yesod.Internal.Session - Yesod.Core.Time + Yesod.Core.Internal.Util Yesod.Core.Trans.Class Yesod.Core.Run Yesod.Core.Class