X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FImplant%2FPrettyPrint.hs;h=5bbc36d8d470508904ce8247485d9ef0947ce72b;hp=ecdb4fe8aed35dacc39f1f4234060d366cc1a070;hb=97295ba;hpb=cc074d0ce3f7df2544bc2baddca4e7730ecdf0a0 diff --git a/Network/HTTP/Lucu/Implant/PrettyPrint.hs b/Network/HTTP/Lucu/Implant/PrettyPrint.hs index ecdb4fe..5bbc36d 100644 --- a/Network/HTTP/Lucu/Implant/PrettyPrint.hs +++ b/Network/HTTP/Lucu/Implant/PrettyPrint.hs @@ -14,12 +14,14 @@ module Network.HTTP.Lucu.Implant.PrettyPrint where import Codec.Compression.GZip import Control.Monad -import Data.Ascii (CIAscii) +import Data.Ascii (Ascii, CIAscii) import qualified Data.Ascii as A import qualified Data.ByteString.Lazy as L import Data.Char -import Data.Foldable -import Data.List +import Data.Collections +import Data.Convertible.Utils +import Data.List (intersperse) +import Data.Monoid import Data.Ratio import Data.Time import Language.Haskell.TH.Lib @@ -30,8 +32,9 @@ import Network.HTTP.Lucu.ETag import Network.HTTP.Lucu.Implant import Network.HTTP.Lucu.Implant.Rewrite import Network.HTTP.Lucu.MIMEType +import Network.HTTP.Lucu.OrphanInstances () import Network.HTTP.Lucu.Resource -import Network.HTTP.Lucu.Utils +import Prelude hiding (head) import Prelude.Unicode header ∷ Input → Doc @@ -66,7 +69,7 @@ header i@(Input {..}) ] where eTagToDoc ∷ ETag → Doc - eTagToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printETag + eTagToDoc = text ∘ convertSuccessVia ((⊥) ∷ Ascii) mimeTypeToDoc ∷ MIMEType → Doc mimeTypeToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printMIMEType @@ -79,8 +82,8 @@ moduleDecl modName symName , text "where" ]) -importDecls ∷ Imports ImportOp → Doc -importDecls = vcat ∘ map pprImport ∘ toList +importDecls ∷ Imports → Doc +importDecls = vcat ∘ map pprImport ∘ fromFoldable pprImport ∷ ImportOp → Doc pprImport (QualifiedImp {..}) @@ -100,7 +103,7 @@ pprImport (UnqualifiedImp {impNames = Just ns, ..}) , hcat [ lparen , sep $ punctuate comma $ map (uncurry pprImpName) - $ toList ns + $ fromFoldable ns , rparen ] ] @@ -138,20 +141,20 @@ gzipEncoding = mkName "gzipEncoding" resourceDecl ∷ Input → Name → Q [Dec] resourceDecl i symName - = sequence [ sigD symName [t| ResourceDef |] + = sequence [ sigD symName [t| Resource |] , valD (varP symName) (normalB (resourceE i)) decls ] where decls ∷ [Q Dec] decls | useGZip i = [ sigD gzipEncoding [t| CIAscii |] - , valD (varP gzipEncoding) (normalB (liftCIAscii "gzip")) [] + , valD (varP gzipEncoding) (normalB (lift ("gzip" ∷ CIAscii))) [] ] | otherwise = [] resourceE ∷ Input → Q Exp -resourceE i = [| emptyResource { +resourceE i = [| mempty { resGet = $(resGetE i) , resHead = $(resHeadE i) } @@ -203,7 +206,7 @@ eTagDecl (Input {..}) lastModDecl ∷ Input → Q [Dec] lastModDecl (Input {..}) = sequence [ sigD lastModified [t| UTCTime |] - , valD (varP lastModified) (normalB (liftUTCTime iLastMod)) [] + , valD (varP lastModified) (normalB (lift iLastMod)) [] ] contTypeDecl ∷ Input → Q [Dec] @@ -216,11 +219,11 @@ binDecl ∷ Input → Q [Dec] binDecl i@(Input {..}) | useGZip i = sequence [ sigD gzippedData [t| L.ByteString |] - , valD (varP gzippedData) (normalB (liftLazyByteString iGZipped)) [] + , valD (varP gzippedData) (normalB (lift iGZipped)) [] ] | otherwise = sequence [ sigD rawData [t| L.ByteString |] - , valD (varP rawData) (normalB (liftLazyByteString iRawData)) [] + , valD (varP rawData) (normalB (lift iRawData)) [] ] rules ∷ Rules @@ -229,14 +232,15 @@ rules = [ qualifyAll "Codec.Compression.GZip" "G" , qualifyAll "Data.Ascii" "A" , qualifyAll "Data.ByteString.Char8" "B" , qualifyAll "Data.ByteString.Lazy.Internal" "L" - , qualifyAll "Data.Map" "M" + , qualifyAll "Data.CaseInsensitive" "CI" + , qualifyAll "Data.Collections" "C" , qualifyAll "Data.Text" "T" , unqualifyAll "Network.HTTP.Lucu.ETag" "Network.HTTP.Lucu" , unqualifyAll "Network.HTTP.Lucu.Resource" "Network.HTTP.Lucu" , unqualifyAll "Network.HTTP.Lucu.Resource.Internal" "Network.HTTP.Lucu" - , unqualifyAll "Network.HTTP.Lucu.MIMEParams" "Network.HTTP.Lucu" , unqualifyAll "Network.HTTP.Lucu.MIMEType" "Network.HTTP.Lucu" , unqualify 'when "Control.Monad" + , unqualify 'mempty "Data.Monoid" , unqualify '(%) "Data.Ratio" , unqualify ''DiffTime "Data.Time" , unqualifyIn 'ModifiedJulianDay ''Day "Data.Time"