on master help sign in
conduit 1.1 support
commitaa154a5c4b67a1d1952044d310cf5557d571b117 authorMichael Snoyman <michael@snoyman.com> dateThu 27 Mar 2014, 16:05 (13 years ago) parent1dad547
4 files changed+17−8
Data/Yaml.hs+6−5 Data/Yaml/Builder.hs+1 Data/Yaml/Parser.hs+7 yaml.cabal+3−3
Data/Yaml.hs+6−5
@@ -91,14 +91,15 @@ import Data.Scientific (fromFloatDigits)
9191#else
9292import Data.Attoparsec.Number
9393#endif
94+import Control.Monad.Trans.Resource (ResourceT, runResourceT)
9495
9596encode :: ToJSON a => a -> ByteString
9697encode obj = unsafePerformIO $
97− C.runResourceT $ CL.sourceList (objToEvents $ toJSON obj)
98+ runResourceT $ CL.sourceList (objToEvents $ toJSON obj)
9899 C.$$ Y.encode
99100
100101encodeFile :: ToJSON a => FilePath -> a -> IO ()
101−encodeFile fp obj = C.runResourceT
102+encodeFile fp obj = runResourceT
102103 $ CL.sourceList (objToEvents $ toJSON obj)
103104 C.$$ Y.encodeFile fp
104105
@@ -187,7 +188,7 @@ instance MonadTrans PErrorT where
187188instance MonadIO m => MonadIO (PErrorT m) where
188189 liftIO = lift . liftIO
189190
190−type Parse = StateT (Map.Map String Value) (C.ResourceT IO)
191+type Parse = StateT (Map.Map String Value) (ResourceT IO)
191192
192193requireEvent :: Event -> C.Sink Event Parse ()
193194requireEvent e = do
@@ -320,7 +321,7 @@ decodeFileEither
320321 => FilePath
321322 -> IO (Either ParseException a)
322323decodeFileEither fp = do
323− x <- try $ C.runResourceT $ flip evalStateT Map.empty $ Y.decodeFile fp C.$$ parse
324+ x <- try $ runResourceT $ flip evalStateT Map.empty $ Y.decodeFile fp C.$$ parse
324325 case x of
325326 Left e
326327 | Just pe <- fromException e -> return $ Left pe
@@ -356,7 +357,7 @@ decodeHelper :: FromJSON a
356357 => C.Source Parse Y.Event
357358 -> IO (Either ParseException (Either String a))
358359decodeHelper src = do
359− x <- try $ C.runResourceT $ flip evalStateT Map.empty $ src C.$$ parse
360+ x <- try $ runResourceT $ flip evalStateT Map.empty $ src C.$$ parse
360361 case x of
361362 Left e
362363 | Just pe <- fromException e -> return $ Left pe
Data/Yaml/Builder.hs+1
@@ -22,6 +22,7 @@ import qualified Data.Conduit.List as CL
2222import System.IO.Unsafe (unsafePerformIO)
2323import Control.Arrow (second)
2424import qualified Data.ByteString.Char8 as S8
25+import Control.Monad.Trans.Resource (runResourceT)
2526
2627(.=) :: ToYaml a => Text -> a -> (Text, YamlBuilder)
2728k .= v = (k, toYaml v)
Data/Yaml/Parser.hs+7
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE DeriveDataTypeable #-}
23{-# LANGUAGE OverloadedStrings #-}
34-- | NOTE: This module is a highly experimental preview release. It may change
@@ -10,9 +11,15 @@ import Data.Monoid (Monoid (..))
1011import Control.Monad (MonadPlus (..), liftM, ap)
1112import Control.Monad.Trans.Writer.Strict (tell, WriterT)
1213import Control.Monad.Trans.Class (lift)
14+import Control.Monad.Trans.Resource (MonadThrow, monadThrow, runResourceT)
1315import qualified Data.Map as Map
1416import Data.Conduit
17+#if MIN_VERSION_conduit(1,1,0)
18+import Data.Conduit.Lift (runWriterC)
19+#define runWriterSC runWriterC
20+#else
1521import Data.Conduit.Lift (runWriterSC)
22+#endif
1623import Data.Text (Text, pack, unpack)
1724import Data.Text.Encoding (decodeUtf8)
1825import Data.ByteString (ByteString)
yaml.cabal+3−3
@@ -1,5 +1,5 @@
11name: yaml
2−version: 0.8.8
2+version: 0.8.8.1
33license: BSD3
44license-file: LICENSE
55author: Michael Snoyman <michael@snoyman.com>, Anton Ageev <antage@gmail.com>,Kirill Simonov
@@ -41,8 +41,8 @@ library
4141 build-depends: base >= 4 && < 5
4242 , transformers >= 0.1 && < 0.4
4343 , bytestring >= 0.9.1.4
44− , conduit >= 1.0.11 && < 1.1
45− , resourcet >= 0.3 && < 0.5
44+ , conduit >= 1.0.11 && < 1.2
45+ , resourcet >= 0.3 && < 1.2
4646 , aeson >= 0.5
4747 , containers
4848 , unordered-containers