packages feed

web-routes-happstack 0.22.2 → 0.23.0

raw patch · 2 files changed

+24/−16 lines, 2 filesdep +bytestringdep +textdep ~web-routesPVP ok

version bump matches the API change (PVP)

Dependencies added: bytestring, text

Dependency ranges changed: web-routes

API changes (from Hackage documentation)

- Web.Routes.Happstack: implSite :: (Functor m, Monad m, MonadPlus m, ServerMonad m) => String -> FilePath -> Site url (m a) -> m a
+ Web.Routes.Happstack: implSite :: (Functor m, Monad m, MonadPlus m, ServerMonad m) => Text -> Text -> Site url (m a) -> m a
- Web.Routes.Happstack: implSite_ :: (Functor m, Monad m, MonadPlus m, ServerMonad m) => String -> FilePath -> Site url (m a) -> m (Either String a)
+ Web.Routes.Happstack: implSite_ :: (Functor m, Monad m, MonadPlus m, ServerMonad m) => Text -> Text -> Site url (m a) -> m (Either String a)
- Web.Routes.Happstack: seeOtherURL :: (ShowURL m, FilterMonad Response m) => URL m -> m Response
+ Web.Routes.Happstack: seeOtherURL :: (MonadRoute m, FilterMonad Response m) => URL m -> m Response

Files

Web/Routes/Happstack.hs view
@@ -3,16 +3,19 @@  import Control.Applicative ((<$>)) import Control.Monad (MonadPlus(mzero))+import qualified Data.ByteString.Char8 as C import Data.List (intercalate)+import           Data.Text (Text)+import qualified Data.Text as Text import Happstack.Server (Happstack, FilterMonad(..), ServerMonad(..), WebMonad(..), HasRqData(..), ServerPartT, Response, Request(rqPaths), ToMessage(..), dirs, seeOther)-import Web.Routes.RouteT (RouteT(RouteT), ShowURL, URL, showURL, liftRouteT, mapRouteT)+import Web.Routes.RouteT (RouteT(RouteT), MonadRoute, URL, showURL, liftRouteT, mapRouteT) import Web.Routes.Site (Site, runSite)  instance (ServerMonad m) => ServerMonad (RouteT url m) where     askRq       = liftRouteT askRq     localRq f m = mapRouteT (localRq f) m -instance (FilterMonad a m)=> FilterMonad a (RouteT url m) where+instance (FilterMonad a m) => FilterMonad a (RouteT url m) where     setFilter     = liftRouteT . setFilter     composeFilter = liftRouteT . composeFilter     getFilter     = mapRouteT getFilter @@ -33,8 +36,8 @@ -- -- see also: 'implSite_' implSite :: (Functor m, Monad m, MonadPlus m, ServerMonad m) => -            String         -- ^ "http://example.org"-         -> FilePath       -- ^ path to this handler, .e.g. "/route/"+            Text           -- ^ "http://example.org"+         -> Text           -- ^ path to this handler, .e.g. "/route/" or ""          -> Site url (m a) -- ^ the 'Site'          -> m a implSite domain approot siteSpec =@@ -50,17 +53,18 @@ -- -- see also: 'implSite' implSite_ :: (Functor m, Monad m, MonadPlus m, ServerMonad m) => -             String          -- ^ "http://example.org"-          -> FilePath        -- ^ path to this handler, .e.g. "/route/"+             Text          -- ^ "http://example.org" (or "http://example.org:80")+          -> Text        -- ^ path to this handler, .e.g. "/route/" or ""           -> Site url (m a)  -- ^ the 'Site'           -> m (Either String a)  implSite_ domain approot siteSpec =-    dirs approot $ do rq <- askRq-                      let pathInfo = intercalate "/" (map escapeSlash (rqPaths rq))-                          f        = runSite (domain ++ approot) siteSpec pathInfo-                      case f of-                        (Left parseError) -> return (Left parseError)-                        (Right sp)   -> Right <$> (localRq (const $ rq { rqPaths = [] }) sp)+    dirs (Text.unpack approot) $+         do rq <- askRq+            let pathInfo = intercalate "/" (map escapeSlash (rqPaths rq))+                f        = runSite (domain `Text.append` approot) siteSpec (C.pack pathInfo)+            case f of+              (Left parseError) -> return (Left parseError)+              (Right sp)   -> Right <$> (localRq (const $ rq { rqPaths = [] }) sp)         where           escapeSlash :: String -> String           escapeSlash [] = []@@ -78,7 +82,7 @@ -}  -- | similar to 'seeOther' but takes a 'URL' 'm' as an argument-seeOtherURL :: (ShowURL m, FilterMonad Response m) => URL m -> m Response+seeOtherURL :: (MonadRoute m, FilterMonad Response m) => URL m -> m Response seeOtherURL url =      do otherURL <- showURL url-       seeOther otherURL (toResponse "")+       seeOther (Text.unpack otherURL) (toResponse "")
web-routes-happstack.cabal view
@@ -1,5 +1,5 @@ Name:             web-routes-happstack-Version:          0.22.2+Version:          0.23.0 License:          BSD3 License-File:     LICENSE Author:           jeremy@seereason.com@@ -11,7 +11,11 @@ Build-type:       Simple  Library-        Build-Depends:    base >= 4 && < 5, happstack-server >= 6.0, web-routes >= 0.24.1+        Build-Depends:    base >= 4 && < 5, +                          bytestring == 0.9.*,+                          happstack-server >= 6.0, +                          text == 0.11.*,+                          web-routes >= 0.26.1         Exposed-Modules:  Web.Routes.Happstack  source-repository head