packages feed

yesod-core 0.8.0 → 0.8.0.1

raw patch · 4 files changed

+53/−22 lines, 4 filesdep ~web-routes-quasiPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: web-routes-quasi

API changes (from Hackage documentation)

- Yesod.Dispatch: fromMultiPiece :: MultiPiece s => [Text] -> Maybe s
- Yesod.Dispatch: fromSinglePiece :: SinglePiece s => Text -> Maybe s
- Yesod.Dispatch: toMultiPiece :: MultiPiece s => s -> [Text]
- Yesod.Dispatch: toSinglePiece :: SinglePiece s => s -> Text

Files

Yesod/Dispatch.hs view
@@ -27,9 +27,9 @@ import Yesod.Handler import Yesod.Internal.Dispatch -import Web.Routes.Quasi-import Web.Routes.Quasi.Parse-import Web.Routes.Quasi.TH+import Web.Routes.Quasi (SinglePiece, MultiPiece, Strings)+import Web.Routes.Quasi.Parse (Resource (..), parseRoutes, parseRoutesFile)+import Web.Routes.Quasi.TH (THResource, Pieces (..), createRoutes, createRender) import Language.Haskell.TH.Syntax  import qualified Network.Wai as W
Yesod/Internal/Dispatch.hs view
@@ -24,6 +24,7 @@ import Data.Monoid (mappend) import qualified Blaze.ByteString.Builder import qualified Data.ByteString.Char8 as S8+import qualified Data.Text  {-| @@ -155,21 +156,35 @@     let caseExp = rm `AppE` VarE req     yr <- [|yesodRunner|]     cr <- [|fmap chooseRep|]+    pack <- [|Data.Text.pack|]+    eq <- [|(==)|]     let url = foldl' AppE (ConE $ mkName constr) $ frontVars []     let runHandlerVars h = runHandler' $ cr `AppE` foldl' AppE (VarE $ mkName h) (frontVars [])-        runHandler' h = NormalB $ yr `AppE` sub-                                     `AppE` VarE master-                                     `AppE` toMasterRoute-                                     `AppE` VarE mkey-                                     `AppE` (just `AppE` url)-                                     `AppE` h-                                     `AppE` VarE req-    let match m = Match (LitP $ StringL m) (runHandlerVars $ map toLower m ++ constr) []-    let clauses =-            case methods of-                [] -> [Clause [VarP req] (runHandlerVars $ "handle" ++ constr) []]-                _ -> [Clause [VarP req] (NormalB $ CaseE caseExp $ map match methods ++-                                                                   [Match WildP (runHandler' badMethod') []]) []]+        runHandler' h = yr `AppE` sub+                           `AppE` VarE master+                           `AppE` toMasterRoute+                           `AppE` VarE mkey+                           `AppE` (just `AppE` url)+                           `AppE` h+                           `AppE` VarE req+    let match :: String -> Q Match+        match m = do+            x <- newName "x"+            return $ Match+                (VarP x)+                (GuardedB+                    [ ( NormalG $ InfixE (Just $ VarE x) eq (Just $ (LitE $ StringL m)) -- FIXME need to pack, right?+                      , runHandlerVars $ map toLower m ++ constr+                      )+                    ])+                []+    clauses <-+        case methods of+            [] -> return [Clause [VarP req] (NormalB $ runHandlerVars $ "handle" ++ constr) []]+            _ -> do+                matches <- mapM match methods+                return [Clause [VarP req] (NormalB $ CaseE caseExp $ matches +++                                                               [Match WildP (NormalB $ runHandler' badMethod') []]) []]     let exp = CaseE segments                 [ Match                     (ConP (mkName "[]") [])@@ -185,10 +200,17 @@     srest <- newName "segments"     innerExp <- mkSimpleExp (VarE srest) pieces frontVars x     nothing <- [|Nothing|]+    y <- newName "y"+    pack <- [|Data.Text.pack|]+    eq <- [|(==)|]     let exp = CaseE segments                 [ Match-                    (InfixP (LitP $ StringL s) (mkName ":") (VarP srest))-                    (NormalB innerExp)+                    (InfixP (VarP y) (mkName ":") (VarP srest))+                    (GuardedB+                        [ ( NormalG $ InfixE (Just $ VarE y) eq (Just $ pack `AppE` (LitE $ StringL s))+                          , innerExp+                          )+                        ])                     []                 , Match WildP (NormalB nothing) []                 ]@@ -260,10 +282,17 @@     srest <- newName "segments"     innerExp <- mkSubsiteExp srest pieces frontVars x     nothing <- [|Nothing|]+    y <- newName "y"+    pack <- [|Data.Text.pack|]+    eq <- [|(==)|]     let exp = CaseE (VarE segments)                 [ Match-                    (InfixP (LitP $ StringL s) (mkName ":") (VarP srest))-                    (NormalB innerExp)+                    (InfixP (VarP y) (mkName ":") (VarP srest))+                    (GuardedB+                        [ ( NormalG $ InfixE (Just $ VarE y) eq (Just $ pack `AppE` (LitE $ StringL s))+                          , innerExp+                          )+                        ])                     []                 , Match WildP (NormalB nothing) []                 ]
runtests.hs view
@@ -4,6 +4,7 @@ import Test.Widget import Test.Media import Test.Links+import Test.NoOverloadedStrings  main :: IO () main = defaultMain@@ -12,4 +13,5 @@     , widgetTest     , mediaTest     , linksTest+    , noOverloadedTest     ]
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         0.8.0+version:         0.8.0.1 license:         BSD3 license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -33,7 +33,7 @@                    , bytestring                >= 0.9.1.4  && < 0.10                    , text                      >= 0.5      && < 0.12                    , template-haskell-                   , web-routes-quasi          >= 0.7      && < 0.8+                   , web-routes-quasi          >= 0.7.0.1  && < 0.8                    , hamlet                    >= 0.8      && < 0.9                    , blaze-builder             >= 0.2.1    && < 0.4                    , transformers              >= 0.2      && < 0.3