tagstream-conduit 0.3.2 → 0.4.0
raw patch · 2 files changed
+13/−7 lines, 2 filesdep ~blaze-builder-conduitdep ~conduitPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: blaze-builder-conduit, conduit
API changes (from Hackage documentation)
- Text.HTML.TagStream: tokenStream :: Monad m => Conduit ByteString m Token
+ Text.HTML.TagStream: tokenStream :: Monad m => GInfConduit ByteString m Token
- Text.HTML.TagStream.Stream: tokenStream :: Monad m => Conduit ByteString m Token
+ Text.HTML.TagStream.Stream: tokenStream :: Monad m => GInfConduit ByteString m Token
Files
- Text/HTML/TagStream/Stream.hs +10/−4
- tagstream-conduit.cabal +3/−3
Text/HTML/TagStream/Stream.hs view
@@ -7,17 +7,23 @@ import Data.Conduit import Text.HTML.TagStream.Parser import Text.HTML.TagStream.Types+import Control.Monad (unless) -- | html parser conduit.-tokenStream :: Monad m => Conduit ByteString m Token-tokenStream = conduitState S.empty push close+tokenStream :: Monad m => GInfConduit ByteString m Token+tokenStream =+ loop S.empty where+ loop accum = awaitE >>= either (close accum) (push accum)+ push accum input = case parseOnly html (accum `S.append` input) of- Right (splitAccum -> (accum', tokens)) -> return $ StateProducing accum' tokens+ Right (splitAccum -> (accum', tokens)) -> mapM_ yield tokens >> loop accum' Left err -> fail err - close s = return $ if S.null s then [] else [Text s]+ close s r = do+ unless (S.null s) $ yield $ Text s+ return r splitAccum :: [Token] -> (ByteString, [Token]) splitAccum [] = (S.empty, [])
tagstream-conduit.cabal view
@@ -1,5 +1,5 @@ Name: tagstream-conduit-Version: 0.3.2+Version: 0.4.0 Synopsis: streamlined html tag parser Description: Tag-stream is a library for parsing HTML//XML to a token stream.@@ -32,10 +32,10 @@ , Text.HTML.TagStream.Utils Build-depends: base >= 4 && < 5 , bytestring- , conduit >= 0.4 && < 0.5+ , conduit >= 0.5 && < 0.6 , attoparsec , blaze-builder- , blaze-builder-conduit >= 0.4 && < 0.5+ , blaze-builder-conduit >= 0.5 && < 0.6 test-suite test hs-source-dirs: tests