diff --git a/yesod-routes/Yesod/Routes/Parse.hs b/yesod-routes/Yesod/Routes/Parse.hs index 232982d5..361ec8a5 100644 --- a/yesod-routes/Yesod/Routes/Parse.hs +++ b/yesod-routes/Yesod/Routes/Parse.hs @@ -184,6 +184,7 @@ ttToType (TTList t) = ListT `AppT` ttToType t pieceFromString :: String -> Either String (CheckOverlap, Piece String) pieceFromString ('#':'!':x) = Right $ (False, Dynamic x) +pieceFromString ('!':'#':x) = Right $ (False, Dynamic x) -- https://github.com/yesodweb/yesod/issues/652 pieceFromString ('#':x) = Right $ (True, Dynamic x) pieceFromString ('*':x) = Left x pieceFromString ('+':x) = Left x diff --git a/yesod-routes/test/Hierarchy.hs b/yesod-routes/test/Hierarchy.hs index bba12cdf..c3c786c8 100644 --- a/yesod-routes/test/Hierarchy.hs +++ b/yesod-routes/test/Hierarchy.hs @@ -77,6 +77,8 @@ do let resources = [parseRoutes| / HomeR GET +/!#Int BackwardsR GET + /admin/#Int AdminR: / AdminRootR GET /login LoginR GET POST @@ -141,6 +143,9 @@ getAfter :: Handler site String; getAfter = "after" getHomeR :: Handler site String getHomeR = "home" +getBackwardsR :: Int -> Handler site Text +getBackwardsR _ = pack "backwards" + getAdminRootR :: Int -> Handler site Text getAdminRootR i = pack $ "admin root: " ++ show i diff --git a/yesod-routes/yesod-routes.cabal b/yesod-routes/yesod-routes.cabal index 61980d10..65b1511a 100644 --- a/yesod-routes/yesod-routes.cabal +++ b/yesod-routes/yesod-routes.cabal @@ -1,5 +1,5 @@ name: yesod-routes -version: 1.2.0.5 +version: 1.2.0.6 license: MIT license-file: LICENSE author: Michael Snoyman