nested-routes 7.1.0.1 → 7.1.1
raw patch · 6 files changed
+20/−29 lines, 6 filesdep ~wai-middleware-verbsdep ~wai-transformersPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: wai-middleware-verbs, wai-transformers
API changes (from Hackage documentation)
Files
- examples/Main.hs +7/−4
- nested-routes.cabal +5/−3
- src/Web/Routes/Nested.hs +7/−15
- src/Web/Routes/Nested/Types.hs +1/−3
- test/Web/Routes/NestedSpec.hs +0/−1
- test/Web/Routes/NestedSpec/Basic.hs +0/−3
examples/Main.hs view
@@ -21,6 +21,7 @@ import Data.Typeable import Control.Monad.IO.Class import Control.Monad.Catch+import Control.Monad.Trans defApp :: Application@@ -96,7 +97,7 @@ match (l_ "bar" </> o_) (action barHandle) match (p_ "double" double </> o_) doubleHandle match emailRoute emailHandle- match (l_ "baz" </> o_) (action bazHandle)+ match (l_ "baz" </> o_) (\app req -> action (bazHandle req) app req) matchAny (action notFoundHandle) where rootHandle :: MonadIO m => ActionT m ()@@ -130,10 +131,12 @@ -- `/baz bazHandle :: ( MonadIO m , MonadThrow m- ) => ActionT m ()- bazHandle = do+ ) => Request -> ActionT m ()+ bazHandle req = do get $ text "baz!"- post uploader $ text "uploaded!"+ post $ do+ lift $ uploader req+ text "uploaded!" where uploader :: (MonadIO m, MonadThrow m) => Request -> m () uploader req =
nested-routes.cabal view
@@ -1,5 +1,5 @@ Name: nested-routes-Version: 7.1.0.1+Version: 7.1.1 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: BSD3@@ -54,9 +54,9 @@ , transformers , tries , unordered-containers- , wai-transformers >= 0.0.4+ , wai-transformers >= 0.0.5 , wai-middleware-content-type >= 0.4.0- , wai-middleware-verbs >= 0.2.0+ , wai-middleware-verbs >= 0.3.0 Test-Suite test@@ -71,6 +71,7 @@ Web.Routes.NestedSpec.Basic Web.Routes.Nested Web.Routes.Nested.Types+ Web.Routes.Nested.Match Build-Depends: base , nested-routes , attoparsec@@ -111,6 +112,7 @@ Main-Is: Main.hs Other-Modules: Web.Routes.Nested Web.Routes.Nested.Types+ Web.Routes.Nested.Match Build-Depends: base , nested-routes >= 7 , attoparsec
src/Web/Routes/Nested.hs view
@@ -83,23 +83,15 @@ import Data.Trie.Pred.Mutable (HashTableTrie (..), RootedHashTableTrie (..), RawValue (..)) import qualified Data.Trie.Pred.Mutable as MPT import Data.Trie.Pred.Mutable.Morph (toMutableRooted)-import qualified Data.Trie.Pred.Base as PT -- only using lookups-import Data.Trie.Pred.Base (RootedPredTrie (..), PredTrie (..))-import Data.Trie.Pred.Base.Step (PredStep (..), PredSteps (..))+import Data.Trie.Pred.Base (RootedPredTrie (..)) import Data.Trie.Pred.Interface.Types (Singleton (..), Extrude (..), CatMaybes)-import qualified Data.Trie.Class as TC-import Data.Trie.HashMap (HashMapStep (..), HashMapChildren (..))-import qualified Data.HashMap.Lazy as HM import Data.List.NonEmpty (NonEmpty (..))-import qualified Data.List.NonEmpty as NE import qualified Data.Text as T import Data.Hashable import Data.Monoid-import Data.Functor.Syntax import Data.Function.Poly import Data.Typeable -import Control.Monad import qualified Control.Monad.State as S import Control.Monad.Catch import Control.Monad.Trans@@ -173,8 +165,8 @@ -> HandlerT childContent childSec m () -> HandlerT resultContent resultSec m () matchGroup !ts cs = do- (Tries trieContent trieNotFound trieSec) <- lift $ execHandlerT cs- tell' $ Tries (extrude ts trieContent)+ (Tries trieContent' trieNotFound trieSec) <- lift $ execHandlerT cs+ tell' $ Tries (extrude ts trieContent') (extrude ts trieNotFound) (extrude ts trieSec) @@ -220,8 +212,8 @@ -> MiddlewareT m route hs app req resp = do let path = pathInfo req- mMatch <- extractMatch path hs- case mMatch of+ mightMatch <- extractMatch path hs+ case mightMatch of Nothing -> do mMatch <- extractMatchAny path hs maybe@@ -359,7 +351,7 @@ -- if null ts -- then ([t],) <$> mx -- else fmap (\(ts',x) -> (t:ts',x)) $! lookupWithLPT f (NE.fromList ts) =<< mxs--- +-- -- goPred (PredStep _ predicate mx xs) = do -- d <- predicate t -- if null ts@@ -432,7 +424,7 @@ -- pure $! getFirst $ -- First (prependAncestry <$> mFoundThere) -- <> First mFoundHere--- +-- -- goPred (MPT.PredStep predKey mx children) = do -- mr' <- HS.lookup predKey k predSet -- case mr' of
src/Web/Routes/Nested/Types.hs view
@@ -91,8 +91,6 @@ action :: Monad m => ActionT m () -> MiddlewareT m action xs app req respond = do vmap <- execVerbListenerT (mapVerbs fileExtsToMiddleware xs)- let v = getVerb req- mMid <- lookupVerb req v vmap- case mMid of+ case lookupVerb (getVerb req) vmap of Nothing -> app req respond Just mid -> mid app req respond
test/Web/Routes/NestedSpec.hs view
@@ -5,7 +5,6 @@ module Web.Routes.NestedSpec (spec) where import Web.Routes.NestedSpec.Basic-import Network.Wai.Trans import Test.Hspec import Test.Hspec.Wai as HW
test/Web/Routes/NestedSpec/Basic.hs view
@@ -12,11 +12,8 @@ import Network.Wai.Trans import Network.HTTP.Types import Text.Regex-import qualified Data.Text.Lazy as LT import Data.Attoparsec.Text hiding (match)-import Data.Monoid import Control.Monad.Catch-import Control.Monad.IO.Class import GHC.Generics