yesod-core 1.2.9.1 → 1.2.9.2
raw patch · 7 files changed
+50/−13 lines, 7 filesdep +conduit-extradep +streaming-commonsdep ~hamletdep ~resourcetdep ~shakespeare
Dependencies added: conduit-extra, streaming-commons
Dependency ranges changed: hamlet, resourcet, shakespeare, shakespeare-css, shakespeare-i18n, shakespeare-js
Files
- Yesod/Core/Class/Handler.hs +4/−0
- Yesod/Core/Content.hs +2/−1
- Yesod/Core/Internal/Request.hs +1/−0
- Yesod/Core/Json.hs +7/−0
- Yesod/Core/Types.hs +23/−4
- test/YesodCoreTest/RawResponse.hs +2/−1
- yesod-core.cabal +11/−7
Yesod/Core/Class/Handler.hs view
@@ -61,7 +61,9 @@ GOX(Monoid w, Strict.RWST r w s) GO(Strict.StateT s) GOX(Monoid w, Strict.WriterT w)+#if !MIN_VERSION_resourcet(1,1,0) GO(ExceptionT)+#endif GO(Pipe l i o u) GO(ConduitM i o) #undef GO@@ -85,7 +87,9 @@ GOX(Monoid w, Strict.RWST r w s) GO(Strict.StateT s) GOX(Monoid w, Strict.WriterT w)+#if !MIN_VERSION_resourcet(1,1,0) GO(ExceptionT)+#endif GO(Pipe l i o u) GO(ConduitM i o) #undef GO
Yesod/Core/Content.hs view
@@ -60,7 +60,8 @@ import Text.Hamlet (Html) import Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder)-import Data.Conduit (Source, ResourceT, Flush (Chunk), ResumableSource, mapOutput)+import Data.Conduit (Source, Flush (Chunk), ResumableSource, mapOutput)+import Control.Monad.Trans.Resource (ResourceT) import Data.Conduit.Internal (ResumableSource (ResumableSource)) import qualified Data.Aeson as J
Yesod/Core/Internal/Request.hs view
@@ -40,6 +40,7 @@ import Data.Conduit.Binary (sourceFile, sinkFile) import Data.Word (Word64) import Control.Monad.IO.Class (liftIO)+import Control.Monad.Trans.Resource (runResourceT, ResourceT) import Control.Exception (throwIO) import Yesod.Core.Types import qualified Data.Map as Map
Yesod/Core/Json.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TypeSynonymInstances, OverloadedStrings #-}+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Yesod.Core.Json ( -- * Convert from a JSON value@@ -28,6 +29,7 @@ import Yesod.Core.Handler (HandlerT, getRequest, invalidArgs, redirect, selectRep, provideRep, rawRequestBody, ProvidedRep) import Control.Monad.Trans.Writer (Writer)+import Control.Monad.Trans.Resource (runExceptionT) import Data.Monoid (Endo) import Yesod.Core.Content (TypedContent) import Yesod.Core.Types (reqAccept)@@ -42,6 +44,7 @@ import Data.Text (pack) import qualified Data.Vector as V import Data.Conduit+import Data.Conduit.Lift import qualified Data.ByteString.Char8 as B8 import Data.Maybe (listToMaybe) import Control.Monad (liftM)@@ -92,7 +95,11 @@ -- /Since: 0.3.0/ parseJsonBody :: (MonadHandler m, J.FromJSON a) => m (J.Result a) parseJsonBody = do+#if MIN_VERSION_resourcet(1,1,0)+ eValue <- rawRequestBody $$ runCatchC (sinkParser JP.value')+#else eValue <- runExceptionT $ rawRequestBody $$ sinkParser JP.value'+#endif return $ case eValue of Left e -> J.Error $ show e Right value -> J.fromJSON value
Yesod/Core/Types.hs view
@@ -20,12 +20,13 @@ import Control.Monad.Logger (LogLevel, LogSource, MonadLogger (..)) import Control.Monad.Trans.Control (MonadBaseControl (..))-import Control.Monad.Trans.Resource (MonadResource (..), InternalState, runInternalState)+import Control.Monad.Trans.Resource (MonadResource (..), InternalState, runInternalState, MonadThrow (..), monadThrow, ResourceT)+#if !MIN_VERSION_resourcet(1,1,0)+import Control.Monad.Trans.Resource (MonadUnsafeIO (..))+#endif import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy as L-import Data.Conduit (Flush, MonadThrow (..),- MonadUnsafeIO (..),- ResourceT, Source)+import Data.Conduit (Flush, Source) import Data.Dynamic (Dynamic) import Data.IORef (IORef) import Data.Map (Map, unionWith)@@ -394,8 +395,17 @@ instance MonadTrans (WidgetT site) where lift = WidgetT . const . liftM (, mempty) instance MonadThrow m => MonadThrow (WidgetT site m) where+#if MIN_VERSION_resourcet(1,1,0)+ throwM = lift . throwM+#else monadThrow = lift . monadThrow+#endif++#if MIN_VERSION_resourcet(1,1,0)+instance (Applicative m, MonadIO m, MonadBase IO m, MonadThrow m) => MonadResource (WidgetT site m) where+#else instance (Applicative m, MonadIO m, MonadUnsafeIO m, MonadThrow m) => MonadResource (WidgetT site m) where+#endif liftResourceT f = WidgetT $ \hd -> liftIO $ fmap (, mempty) $ runInternalState f (handlerResource hd) instance MonadIO m => MonadLogger (WidgetT site m) where@@ -434,8 +444,17 @@ restoreM (StH base) = HandlerT $ const $ restoreM base instance MonadThrow m => MonadThrow (HandlerT site m) where+#if MIN_VERSION_resourcet(1,1,0)+ throwM = lift . monadThrow+#else monadThrow = lift . monadThrow+#endif++#if MIN_VERSION_resourcet(1,1,0)+instance (MonadIO m, MonadBase IO m, MonadThrow m) => MonadResource (HandlerT site m) where+#else instance (MonadIO m, MonadUnsafeIO m, MonadThrow m) => MonadResource (HandlerT site m) where+#endif liftResourceT f = HandlerT $ \hd -> liftIO $ runInternalState f (handlerResource hd) instance MonadIO m => MonadLogger (HandlerT site m) where
test/YesodCoreTest/RawResponse.hs view
@@ -19,6 +19,7 @@ import Control.Concurrent.Async (withAsync) import Control.Monad.Trans.Resource (register) import Data.IORef+import Data.Streaming.Network (bindPortTCP) data App = App @@ -42,7 +43,7 @@ loop 43124 where loop port = do- esocket <- try $ bindPort port "*"+ esocket <- try $ bindPortTCP port "*" case esocket of Left (_ :: IOException) -> loop (succ port) Right socket -> do
yesod-core.cabal view
@@ -1,5 +1,5 @@ name: yesod-core-version: 1.2.9.1+version: 1.2.9.2 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -32,11 +32,11 @@ , text >= 0.7 , template-haskell , path-pieces >= 0.1.2 && < 0.2- , hamlet >= 1.1 && < 1.2- , shakespeare >= 1.0 && < 1.3- , shakespeare-js >= 1.0.2 && < 1.3- , shakespeare-css >= 1.0 && < 1.1- , shakespeare-i18n >= 1.0 && < 1.1+ , hamlet >= 1.1+ , shakespeare >= 1.0 && < 2.1+ , shakespeare-js >= 1.0.2+ , shakespeare-css >= 1.0+ , shakespeare-i18n >= 1.0 , blaze-builder >= 0.2.1.4 && < 0.4 , transformers >= 0.2.2 && < 0.4 , clientsession >= 0.9 && < 0.10@@ -57,7 +57,7 @@ , wai-logger >= 0.2 , monad-logger >= 0.3.1 && < 0.4 , conduit >= 0.5- , resourcet >= 0.4.9 && < 0.5+ , resourcet >= 0.4.9 && < 1.2 , lifted-base >= 0.1.2 , attoparsec-conduit , blaze-html >= 0.5@@ -66,6 +66,7 @@ , safe , warp >= 1.3.8 , unix-compat+ , conduit-extra exposed-modules: Yesod.Core Yesod.Core.Content@@ -124,6 +125,9 @@ , network-conduit , network , async+ , conduit-extra+ , shakespeare+ , streaming-commons ghc-options: -Wall extensions: TemplateHaskell