web-routes-hsp 0.22.1 → 0.23.0
raw patch · 2 files changed
+22/−26 lines, 2 filesdep ~hspdep ~hsxdep ~text
Dependency ranges changed: hsp, hsx, text, web-routes
Files
- Web/Routes/XMLGenT.hs +14/−20
- web-routes-hsp.cabal +8/−6
Web/Routes/XMLGenT.hs view
@@ -6,29 +6,23 @@ import Control.Applicative ((<$>)) import qualified Data.Text as T import qualified Data.Text.Lazy as TL-import qualified HSX.XMLGenerator as HSX+import {- qualified -} HSX.XMLGenerator -- as HSX import Web.Routes.RouteT (RouteT, MonadRoute(..), showURL, URL) -instance (Functor m, Monad m) => HSX.XMLGen (RouteT url m) where-#if __GLASGOW_HASKELL__ < 702- type HSX.XML (RouteT url m) = XML- newtype HSX.Child (RouteT url m) = UChild { unUChild :: XML }- newtype HSX.Attribute (RouteT url m) = UAttr { unUAttr :: Attribute }-#else- type XML (RouteT url m) = XML- newtype Child (RouteT url m) = UChild { unUChild :: XML }- newtype Attribute (RouteT url m) = UAttr { unUAttr :: Attribute }-#endif+instance (Functor m, Monad m) => XMLGen (RouteT url m) where+ type XMLType (RouteT url m) = XML+ newtype ChildType (RouteT url m) = UChild { unUChild :: XML }+ newtype AttributeType (RouteT url m) = UAttr { unUAttr :: Attribute } genElement n attrs children = do attribs <- map unUAttr <$> asAttr attrs childer <- flattenCDATA . map unUChild <$> asChild children- HSX.XMLGenT $ return (Element+ return (Element (toName n) attribs childer ) xmlToChild = UChild- pcdataToChild = HSX.xmlToChild . pcdata+ pcdataToChild = xmlToChild . pcdata flattenCDATA :: [XML] -> [XML] flattenCDATA cxml =@@ -50,23 +44,23 @@ instance (Monad m, Functor m) => IsAttrValue (RouteT url m) TL.Text where toAttrValue = toAttrValue . TL.unpack -instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) Attribute where+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) Attribute where asAttr = return . (:[]) . UAttr -instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Char) where+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Char) where asAttr (n := c) = asAttr (n := [c]) -instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String String) where+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String String) where asAttr (n := str) = asAttr $ MkAttr (toName n, pAttrVal str) -instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Bool) where+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Bool) where asAttr (n := True) = asAttr $ MkAttr (toName n, pAttrVal "true") asAttr (n := False) = asAttr $ MkAttr (toName n, pAttrVal "false") -instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Int) where+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Int) where asAttr (n := i) = asAttr $ MkAttr (toName n, pAttrVal (show i)) -instance (Functor m, Monad m) => HSX.EmbedAsAttr (RouteT url m) (Attr String Integer) where+instance (Functor m, Monad m) => EmbedAsAttr (RouteT url m) (Attr String Integer) where asAttr (n := i) = asAttr $ MkAttr (toName n, pAttrVal (show i)) instance (Monad m, Functor m, IsName n) => (EmbedAsAttr (RouteT url m) (Attr n TL.Text)) where@@ -116,4 +110,4 @@ instance (MonadRoute m) => MonadRoute (XMLGenT m) where type URL (XMLGenT m) = URL m- askRouteFn = XMLGenT $ askRouteFn+ askRouteFn = XMLGenT askRouteFn
web-routes-hsp.cabal view
@@ -1,5 +1,5 @@ Name: web-routes-hsp-Version: 0.22.1+Version: 0.23.0 License: BSD3 License-File: LICENSE Author: jeremy@seereason.com@@ -11,13 +11,15 @@ Build-type: Simple Library- Build-Depends: base >= 4 && < 5,- hsx >= 0.7.0,- hsp,- text,- web-routes >= 0.26+ Build-Depends: base >= 4 && < 5,+ hsx >= 0.10.2 && < 0.11,+ hsp >= 0.7.1 && < 0.8,+ text == 0.11.*,+ web-routes >= 0.26 && < 0.28+ Exposed-Modules: Web.Routes.XMLGenT source-repository head type: darcs+ subdir: web-routes-hsp location: http://src.seereason.com/web-routes/