web-routes 0.27.9 → 0.27.10
raw patch · 2 files changed
+13/−14 lines, 2 filesdep +hspecdep −test-frameworkdep −test-framework-hunitdep −test-framework-quickcheck2dep ~basedep ~http-typesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: hspec
Dependencies removed: test-framework, test-framework-hunit, test-framework-quickcheck2, test-framework-th
Dependency ranges changed: base, http-types
API changes (from Hackage documentation)
- Web.Routes.PathInfo: instance (GPathInfo a, Constructor c) => GPathInfo (C1 c a)
- Web.Routes.PathInfo: instance (GPathInfo a, GPathInfo b) => GPathInfo (a :*: b)
- Web.Routes.PathInfo: instance (GPathInfo a, GPathInfo b) => GPathInfo (a :+: b)
- Web.Routes.PathInfo: instance GPathInfo U1
- Web.Routes.PathInfo: instance GPathInfo a => GPathInfo (D1 c a)
- Web.Routes.PathInfo: instance GPathInfo a => GPathInfo (S1 c a)
- Web.Routes.PathInfo: instance PathInfo Int
- Web.Routes.PathInfo: instance PathInfo Integer
- Web.Routes.PathInfo: instance PathInfo String
- Web.Routes.PathInfo: instance PathInfo Text
- Web.Routes.PathInfo: instance PathInfo [String]
- Web.Routes.PathInfo: instance PathInfo [Text]
- Web.Routes.PathInfo: instance PathInfo a => GPathInfo (K1 i a)
- Web.Routes.RouteT: instance (MonadPlus m, Monad (RouteT url m)) => MonadPlus (RouteT url m)
- Web.Routes.RouteT: instance Alternative m => Alternative (RouteT url m)
- Web.Routes.RouteT: instance Applicative m => Applicative (RouteT url m)
- Web.Routes.RouteT: instance Functor m => Functor (RouteT url m)
- Web.Routes.RouteT: instance Monad m => Monad (RouteT url m)
- Web.Routes.RouteT: instance Monad m => MonadRoute (RouteT url m)
- Web.Routes.RouteT: instance MonadCatch m => MonadCatch (RouteT url m)
- Web.Routes.RouteT: instance MonadCont m => MonadCont (RouteT url m)
- Web.Routes.RouteT: instance MonadError e m => MonadError e (RouteT url m)
- Web.Routes.RouteT: instance MonadFix m => MonadFix (RouteT url m)
- Web.Routes.RouteT: instance MonadIO m => MonadIO (RouteT url m)
- Web.Routes.RouteT: instance MonadRWS r w s m => MonadRWS r w s (RouteT url m)
- Web.Routes.RouteT: instance MonadReader r m => MonadReader r (RouteT url m)
- Web.Routes.RouteT: instance MonadState s m => MonadState s (RouteT url m)
- Web.Routes.RouteT: instance MonadThrow m => MonadThrow (RouteT url m)
- Web.Routes.RouteT: instance MonadTrans (RouteT url)
- Web.Routes.RouteT: instance MonadWriter w m => MonadWriter w (RouteT url m)
- Web.Routes.RouteT: unRouteT :: RouteT url m a -> (url -> [(Text, Maybe Text)] -> Text) -> m a
- Web.Routes.Site: formatPathSegments :: Site url a -> url -> ([Text], [(Text, Maybe Text)])
- Web.Routes.Site: handleSite :: Site url a -> (url -> [(Text, Maybe Text)] -> Text) -> url -> a
- Web.Routes.Site: instance Functor (Site url)
- Web.Routes.Site: parsePathSegments :: Site url a -> [Text] -> Either String url
+ Web.Routes.PathInfo: instance (Web.Routes.PathInfo.GPathInfo a, GHC.Generics.Constructor c) => Web.Routes.PathInfo.GPathInfo (GHC.Generics.C1 c a)
+ Web.Routes.PathInfo: instance (Web.Routes.PathInfo.GPathInfo a, Web.Routes.PathInfo.GPathInfo b) => Web.Routes.PathInfo.GPathInfo (a GHC.Generics.:*: b)
+ Web.Routes.PathInfo: instance (Web.Routes.PathInfo.GPathInfo a, Web.Routes.PathInfo.GPathInfo b) => Web.Routes.PathInfo.GPathInfo (a GHC.Generics.:+: b)
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.GPathInfo GHC.Generics.U1
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.GPathInfo a => Web.Routes.PathInfo.GPathInfo (GHC.Generics.D1 c a)
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.GPathInfo a => Web.Routes.PathInfo.GPathInfo (GHC.Generics.S1 c a)
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo Data.Text.Internal.Text
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo GHC.Base.String
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo GHC.Integer.Type.Integer
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo GHC.Types.Int
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo [Data.Text.Internal.Text]
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo [GHC.Base.String]
+ Web.Routes.PathInfo: instance Web.Routes.PathInfo.PathInfo a => Web.Routes.PathInfo.GPathInfo (GHC.Generics.K1 i a)
+ Web.Routes.RouteT: [unRouteT] :: RouteT url m a -> (url -> [(Text, Maybe Text)] -> Text) -> m a
+ Web.Routes.RouteT: instance (GHC.Base.MonadPlus m, GHC.Base.Monad (Web.Routes.RouteT.RouteT url m)) => GHC.Base.MonadPlus (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.RWS.Class.MonadRWS r w s m => Control.Monad.RWS.Class.MonadRWS r w s (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance Control.Monad.Trans.Class.MonadTrans (Web.Routes.RouteT.RouteT url)
+ Web.Routes.RouteT: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance GHC.Base.Alternative m => GHC.Base.Alternative (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance GHC.Base.Applicative m => GHC.Base.Applicative (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance GHC.Base.Functor m => GHC.Base.Functor (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance GHC.Base.Monad m => GHC.Base.Monad (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.RouteT: instance GHC.Base.Monad m => Web.Routes.RouteT.MonadRoute (Web.Routes.RouteT.RouteT url m)
+ Web.Routes.Site: [formatPathSegments] :: Site url a -> url -> ([Text], [(Text, Maybe Text)])
+ Web.Routes.Site: [handleSite] :: Site url a -> (url -> [(Text, Maybe Text)] -> Text) -> url -> a
+ Web.Routes.Site: [parsePathSegments] :: Site url a -> [Text] -> Either String url
+ Web.Routes.Site: instance GHC.Base.Functor (Web.Routes.Site.Site url)
- Web.Routes.PathInfo: fromPathInfo :: PathInfo url => ByteString -> Either String url
+ Web.Routes.PathInfo: fromPathInfo :: (PathInfo url) => ByteString -> Either String url
- Web.Routes.PathInfo: mkSitePI :: PathInfo url => ((url -> [(Text, Maybe Text)] -> Text) -> url -> a) -> Site url a
+ Web.Routes.PathInfo: mkSitePI :: (PathInfo url) => ((url -> [(Text, Maybe Text)] -> Text) -> url -> a) -> Site url a
- Web.Routes.PathInfo: stripOverlap :: Eq a => [a] -> [a] -> [a]
+ Web.Routes.PathInfo: stripOverlap :: (Eq a) => [a] -> [a] -> [a]
- Web.Routes.PathInfo: toPathInfo :: PathInfo url => url -> Text
+ Web.Routes.PathInfo: toPathInfo :: (PathInfo url) => url -> Text
- Web.Routes.PathInfo: toPathInfoParams :: PathInfo url => url -> [(Text, Maybe Text)] -> Text
+ Web.Routes.PathInfo: toPathInfoParams :: (PathInfo url) => url -> [(Text, Maybe Text)] -> Text
- Web.Routes.RouteT: askRouteT :: Monad m => RouteT url m (url -> [(Text, Maybe Text)] -> Text)
+ Web.Routes.RouteT: askRouteT :: (Monad m) => RouteT url m (url -> [(Text, Maybe Text)] -> Text)
- Web.Routes.RouteT: class Monad m => MonadRoute m where type family URL m
+ Web.Routes.RouteT: class (Monad m) => MonadRoute m where type family URL m
- Web.Routes.RouteT: showURL :: MonadRoute m => URL m -> m Text
+ Web.Routes.RouteT: showURL :: (MonadRoute m) => URL m -> m Text
- Web.Routes.RouteT: showURLParams :: MonadRoute m => URL m -> [(Text, Maybe Text)] -> m Text
+ Web.Routes.RouteT: showURLParams :: (MonadRoute m) => URL m -> [(Text, Maybe Text)] -> m Text
Files
- test/Test.hs +6/−4
- web-routes.cabal +7/−10
test/Test.hs view
@@ -2,11 +2,10 @@ module Main (main) where -import Test.Framework.Providers.HUnit-import Test.Framework.Providers.QuickCheck2-import Test.Framework.TH import Test.HUnit import Test.QuickCheck+import Test.Hspec+import Test.Hspec.QuickCheck import Web.Routes newtype ArticleId = ArticleId Int deriving (Eq, Show, Num, PathInfo, Arbitrary)@@ -38,4 +37,7 @@ url -> assertFailure $ "expected a Left, but got: " ++ show url main :: IO ()-main = $defaultMainGenerator+main = hspec $ do+ prop "toPathInfo" case_toPathInfo+ prop "fromPathInfo" case_fromPathInfo+ prop "PathInfo_isomorphism" prop_PathInfo_isomorphism
web-routes.cabal view
@@ -1,14 +1,16 @@ Name: web-routes-Version: 0.27.9+Version: 0.27.10 License: BSD3 License-File: LICENSE Author: jeremy@seereason.com Maintainer: partners@seereason.com Category: Web, Language-Synopsis: Library for maintaining correctness and composability of URLs within an application.+Synopsis: portable, type-safe URL routing Description: A collection of types and functions that ensure that URLs generated by an application are valid. Need more properties here.+Homepage: http://www.happstack.com/docs/crashcourse/index.html#web-routes Cabal-Version: >= 1.8 Build-type: Simple+tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3 test-suite Test type : exitcode-stdio-1.0@@ -16,11 +18,8 @@ hs-source-dirs : test build-depends : base == 4.*, HUnit,+ hspec, QuickCheck,- test-framework,- test-framework-hunit,- test-framework-quickcheck2,- test-framework-th, web-routes Library@@ -28,7 +27,7 @@ blaze-builder >= 0.2 && < 0.5, parsec >= 2 && < 4, bytestring >= 0.9 && < 0.11,- http-types >= 0.6 && < 0.9,+ http-types >= 0.6 && < 0.10, mtl >= 2.0 && < 2.3, text >= 0.11 && < 1.3, utf8-string >= 0.3 && < 1.1,@@ -42,11 +41,9 @@ Web.Routes.RouteT Web.Routes.Site - Extensions: TemplateHaskell,- FlexibleContexts,+ Extensions: FlexibleContexts, CPP source-repository head type: git location: https://github.com/Happstack/web-routes.git- subdir: web-routes