]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Implant/PrettyPrint.hs
Code clean-up using convertible-text.
[Lucu.git] / Network / HTTP / Lucu / Implant / PrettyPrint.hs
index acd1d7f762a1d97181da38764e0864efeb783c1f..22e3a74538c3a3342a74979c45d60382a3742c63 100644 (file)
@@ -1,5 +1,7 @@
 {-# LANGUAGE
     DoAndIfThenElse
+  , FlexibleContexts
+  , MultiParamTypeClasses
   , OverloadedStrings
   , RecordWildCards
   , TemplateHaskell
@@ -14,12 +16,14 @@ module Network.HTTP.Lucu.Implant.PrettyPrint
     where
 import Codec.Compression.GZip
 import Control.Monad
-import Data.Ascii (CIAscii)
-import qualified Data.Ascii as A
+import Data.Ascii (Ascii, CIAscii)
 import qualified Data.ByteString.Lazy as L
 import Data.Char
 import Data.Collections
+import Data.Convertible.Base
+import Data.Convertible.Utils
 import Data.List (intersperse)
+import Data.Monoid
 import Data.Ratio
 import Data.Time
 import Language.Haskell.TH.Lib
@@ -58,19 +62,16 @@ header i@(Input {..})
                              ]
                     else
                         text "      Compression: disabled"
-                  , text "        MIME Type:" <+> mimeTypeToDoc iType
-                  , text "             ETag:" <+> eTagToDoc iETag
+                  , text "        MIME Type:" <+> toDoc iType
+                  , text "             ETag:" <+> toDoc iETag
                   , text "    Last Modified:" <+> text (show iLastMod)
                   ]
            , text " -}"
            , text "{-# LANGUAGE MagicHash #-}"
            ]
     where
-      eTagToDoc ∷ ETag → Doc
-      eTagToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printETag
-
-      mimeTypeToDoc ∷ MIMEType → Doc
-      mimeTypeToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printMIMEType
+      toDoc ∷ ConvertSuccess α Ascii ⇒ α → Doc
+      toDoc = text ∘ convertSuccessVia ((⊥) ∷ Ascii)
 
 moduleDecl ∷ ModName → Name → Doc
 moduleDecl modName symName
@@ -139,7 +140,7 @@ 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
@@ -152,7 +153,7 @@ resourceDecl i symName
                 = []
 
 resourceE ∷ Input → Q Exp
-resourceE i = [| emptyResource {
+resourceE i = [| mempty {
                    resGet  = $(resGetE  i)
                  , resHead = $(resHeadE i)
                  }
@@ -236,9 +237,9 @@ rules = [ qualifyAll   "Codec.Compression.GZip"              "G"
         , 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"