packages feed

conduit 1.2.12 → 1.2.12.1

raw patch · 4 files changed

+23/−8 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.2.12.1++* Fix `pass` in `ConduitM` `MonadWriter` instance+ ## 1.2.12  * Add `exceptC`, `runExceptC` and `catchExceptC` to `Data.Conduit.Lift`
Data/Conduit/Internal/Conduit.hs view
@@ -94,7 +94,7 @@ import Control.Monad.Error.Class(MonadError(..)) import Control.Monad.Reader.Class(MonadReader(..)) import Control.Monad.RWS.Class(MonadRWS())-import Control.Monad.Writer.Class(MonadWriter(..))+import Control.Monad.Writer.Class(MonadWriter(..), censor) import Control.Monad.State.Class(MonadState(..)) import Control.Monad.Trans.Class (MonadTrans (lift)) import Control.Monad.IO.Class (MonadIO (liftIO))@@ -207,12 +207,16 @@          in go mempty (c0 Done)      pass (ConduitM c0) = ConduitM $ \rest ->-        let go (HaveOutput p c o) = HaveOutput (go p) c o-            go (NeedInput p c) = NeedInput (\i -> go (p i)) (\u -> go (c u))-            go (PipeM mp) = PipeM $ mp >>= (return . go)-            go (Done (x,_)) = rest x-            go (Leftover p i) = Leftover (go p) i-         in go (c0 Done)+        let go front (HaveOutput p c o) = HaveOutput (go front p) c o+            go front (NeedInput p c) = NeedInput (\i -> go front (p i)) (\u -> go front (c u))+            go front (PipeM mp) = PipeM $ do+                (p,w) <- censor (const mempty) (listen mp)+                return $ go (front `mappend` w) p+            go front (Done (x,f)) = PipeM $ do+                tell (f front)+                return $ rest x+            go front (Leftover p i) = Leftover (go front p) i+         in go mempty (c0 Done)  instance MonadState s m => MonadState s (ConduitM i o m) where     get = lift get
conduit.cabal view
@@ -1,5 +1,5 @@ Name:                conduit-Version:             1.2.12+Version:             1.2.12.1 Synopsis:            Streaming data processing library. description:     `conduit` is a solution to the streaming data problem, allowing for production,
test/main.hs view
@@ -27,6 +27,7 @@ import Control.Monad.Trans.Writer (execWriter, tell, runWriterT) import Control.Monad.Trans.State (evalStateT, get, put, modify) import Control.Monad.Trans.Maybe (MaybeT (..))+import qualified Control.Monad.Writer as W import Control.Applicative (pure, (<$>), (<*>)) import qualified Control.Monad.Catch as Catch import Data.Functor.Identity (Identity,runIdentity)@@ -876,6 +877,12 @@                     C.yield 3                     lift $ return ()             (src C.$$ CL.consume) `shouldBe` Right [1, 2, 4 :: Int]+        describe "WriterT" $+            it "pass" $+                let writer = W.pass $ do+                    W.tell [1 :: Int]+                    pure ((), (2:))+                in execWriter (C.runConduit writer) `shouldBe` [2, 1]      describe "finalizers" $ do         it "promptness" $ do