packages feed

yesod-core 1.2.7 → 1.2.8

raw patch · 4 files changed

+36/−11 lines, 4 files

Files

Yesod/Core/Handler.hs view
@@ -137,6 +137,7 @@     , newIdent       -- * Lifting     , handlerToIO+    , forkHandler       -- * i18n     , getMessageRender       -- * Per-request caching@@ -149,18 +150,17 @@                                                 mkFileInfoLBS, mkFileInfoSource)  import           Control.Applicative           ((<$>), (<|>))-import           Control.Exception             (evaluate)+import           Control.Exception             (evaluate, SomeException)+import           Control.Exception.Lifted      (handle) -import           Control.Monad                 (liftM)+import           Control.Monad                 (liftM, void) import qualified Control.Monad.Trans.Writer    as Writer  import           Control.Monad.IO.Class        (MonadIO, liftIO)-import           Control.Monad.Trans.Resource  (MonadResource, liftResourceT, InternalState)  import qualified Network.HTTP.Types            as H import qualified Network.Wai                   as W import Control.Monad.Trans.Class (lift)-import Data.Conduit (transPipe, Flush (Flush), yield, Producer)  import qualified Data.Text                     as T import           Data.Text.Encoding            (decodeUtf8With, encodeUtf8)@@ -173,10 +173,8 @@ import qualified Data.ByteString.Lazy          as L import qualified Data.Map                      as Map -import Data.Conduit (Source, Sink) import           Control.Arrow                 ((***)) import qualified Data.ByteString.Char8         as S8-import           Data.Maybe                    (mapMaybe) import           Data.Monoid                   (Endo (..), mappend, mempty) import           Data.Text                     (Text) import qualified Network.Wai.Parse             as NWP@@ -186,10 +184,9 @@ import           Yesod.Core.Internal.Util      (formatRFC1123) import           Text.Blaze.Html               (preEscapedToMarkup, toHtml) -import           Control.Monad.Trans.Resource  (ResourceT, runResourceT, withInternalState, getInternalState, liftResourceT) import           Data.Dynamic                  (fromDynamic, toDyn) import qualified Data.IORef.Lifted             as I-import           Data.Maybe                    (listToMaybe)+import           Data.Maybe                    (listToMaybe, mapMaybe) import           Data.Typeable                 (Typeable, typeOf) import           Yesod.Core.Class.Handler import           Yesod.Core.Types@@ -198,12 +195,23 @@ import Blaze.ByteString.Builder (Builder) import Safe (headMay) import Data.CaseInsensitive (CI)+import           Control.Monad.Trans.Resource  (MonadResource, InternalState, runResourceT, withInternalState, getInternalState, liftResourceT, resourceForkIO #if MIN_VERSION_wai(2, 0, 0)+#else+              , ResourceT+#endif+              )+#if MIN_VERSION_wai(2, 0, 0) import qualified System.PosixCompat.Files as PC #endif #if MIN_VERSION_wai(2, 1, 0)-import Control.Monad.Trans.Control (MonadBaseControl, control)+import Control.Monad.Trans.Control (control, MonadBaseControl) #endif+import Data.Conduit (Source, transPipe, Flush (Flush), yield, Producer+#if MIN_VERSION_wai(2, 1, 0)+                    , Sink+#endif+                   )  get :: MonadHandler m => m GHState get = liftHandlerT $ HandlerT $ I.readIORef . handlerState@@ -388,6 +396,18 @@                 }         liftIO (f newHandlerData) +-- | forkIO for a Handler (run an action in the background)+--+-- Uses 'handlerToIO', liftResourceT, and resourceForkIO+-- for correctness and efficiency+--+-- Since 1.2.8+forkHandler :: (SomeException -> HandlerT site IO ()) -- ^ error handler+              -> HandlerT site IO ()+              -> HandlerT site IO ()+forkHandler onErr handler = do+    yesRunner <- handlerToIO+    void $ liftResourceT $ resourceForkIO $ yesRunner $ handle onErr handler  -- | Redirect to the given route. -- HTTP status code 303 for HTTP 1.1 clients and 302 for HTTP 1.0
test/YesodCoreTest.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP                        #-} module YesodCoreTest (specs) where   import YesodCoreTest.CleanPath@@ -14,7 +15,9 @@ import qualified YesodCoreTest.JsLoader as JsLoader import qualified YesodCoreTest.RequestBodySize as RequestBodySize import qualified YesodCoreTest.Json as Json+#if MIN_VERSION_wai(2, 1, 0) import qualified YesodCoreTest.RawResponse as RawResponse+#endif import qualified YesodCoreTest.Streaming as Streaming import qualified YesodCoreTest.Reps as Reps import qualified YesodCoreTest.Auth as Auth@@ -38,7 +41,9 @@       JsLoader.specs       RequestBodySize.specs       Json.specs+#if MIN_VERSION_wai(2, 1, 0)       RawResponse.specs+#endif       Streaming.specs       Reps.specs       Auth.specs
test/YesodCoreTest/Json.hs view
@@ -19,7 +19,7 @@  getHomeR :: Handler RepPlain getHomeR = do-    val <- parseJsonBody_+    val <- requireJsonBody     case Map.lookup ("foo" :: Text) val of         Nothing -> invalidArgs ["foo not found"]         Just foo -> return $ RepPlain $ toContent (foo :: Text)
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         1.2.7+version:         1.2.8 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>