import qualified Data.ByteString.Lazy as L
import Data.Char
import Data.Collections
+import Data.Convertible.Base
import Data.List (intersperse)
+import Data.Monoid
import Data.Ratio
import Data.Time
import Language.Haskell.TH.Lib
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
]
where
eTagToDoc ∷ ETag → Doc
- eTagToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printETag
+ eTagToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ cs
mimeTypeToDoc ∷ MIMEType → Doc
mimeTypeToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printMIMEType
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)
}
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]
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
, 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"