packages feed

yesod-core 1.6.7 → 1.6.8

raw patch · 4 files changed

+23/−4 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for yesod-core +## 1.6.8+* In the route syntax, allow trailing backslashes to indicate line+    continuation. [#1558](https://github.com/yesodweb/yesod/pull/1558)+ ## 1.6.7  * If no matches are found, `selectRep` chooses first representation regardless
Yesod/Routes/Parse.hs view
@@ -65,7 +65,7 @@ -- invalid input. resourcesFromString :: String -> [ResourceTree String] resourcesFromString =-    fst . parse 0 . filter (not . all (== ' ')) . lines . filter (/= '\r')+    fst . parse 0 . filter (not . all (== ' ')) . foldr lineContinuations [] . lines . filter (/= '\r')   where     parse _ [] = ([], [])     parse indent (thisLine:otherLines)@@ -285,3 +285,12 @@     _ -> error $ "Unclosed bracket ('{'): " ++ str dropBracket x = x +-- | If this line ends with a backslash, concatenate it together with the next line.+--+-- @since 1.6.8+lineContinuations :: String -> [String] -> [String]+lineContinuations this [] = [this]+lineContinuations this below@(next:rest) = case unsnoc this of+    Just (this', '\\') -> (this'++next):rest+    _ -> this:below+  where unsnoc s = if null s then Nothing else Just (init s, last s)
test/RouteSpec.hs view
@@ -17,7 +17,7 @@ import Data.Text (Text, pack, unpack, singleton) import Yesod.Routes.Class hiding (Route) import qualified Yesod.Routes.Class as YRC-import Yesod.Routes.Parse (parseRoutesNoCheck, parseTypeTree, TypeTree (..))+import Yesod.Routes.Parse (parseRoutesFile, parseRoutesNoCheck, parseTypeTree, TypeTree (..)) import Yesod.Routes.Overlap (findOverlapNames) import Yesod.Routes.TH hiding (Dispatch) import Language.Haskell.TH.Syntax@@ -219,10 +219,16 @@         it "routes to subparam" $ disp "PUT" ["subparam", "6", "q"]             @?= (pack "subparam 6 q", Just $ SubparamR 6 $ ParamRoute 'q') -    describe "parsing" $ do+    describe "route parsing" $ do         it "subsites work" $ do             parseRoute ([pack "subsite", pack "foo"], [(pack "bar", pack "baz")]) @?=                 Just (SubsiteR $ MySubRoute ([pack "foo"], [(pack "bar", pack "baz")]))++    describe "routing table parsing" $ do+        it "recognizes trailing backslashes as line continuation directives" $ do+            let routes :: [ResourceTree String]+                routes = $(parseRoutesFile "test/fixtures/routes_with_line_continuations")+            length routes @?= 3      describe "overlap checking" $ do         it "catches overlapping statics" $ do
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         1.6.7+version:         1.6.8 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>