pdf-toolbox-core 0.0.2.1 → 0.0.3.0
raw patch · 8 files changed
+43/−9 lines, 8 filesdep +scientificdep ~attoparsecPVP ok
version bump matches the API change (PVP)
Dependencies added: scientific
Dependency ranges changed: attoparsec
API changes (from Hackage documentation)
+ Pdf.Toolbox.Core.Writer: instance (Monad m, Functor m) => Applicative (PdfWriter m)
+ Pdf.Toolbox.Core.Writer: instance Functor m => Functor (PdfWriter m)
Files
- changelog.md +7/−0
- lib/Pdf/Toolbox/Core/IO.hs +1/−1
- lib/Pdf/Toolbox/Core/Object/Builder.hs +6/−0
- lib/Pdf/Toolbox/Core/Parsers/Object.hs +14/−2
- lib/Pdf/Toolbox/Core/Parsers/Util.hs +1/−1
- lib/Pdf/Toolbox/Core/Parsers/XRef.hs +1/−1
- lib/Pdf/Toolbox/Core/Writer.hs +8/−1
- pdf-toolbox-core.cabal +5/−3
+ changelog.md view
@@ -0,0 +1,7 @@++0.0.3.0++* add Functor and Applicative instances to fix AMP warnings+* fix attoparsec module deprication warnings+* add scientific dependency+ latest attoparsec uses it for numbers
lib/Pdf/Toolbox/Core/IO.hs view
@@ -23,7 +23,7 @@ import Data.Int import Data.Functor-import Data.Attoparsec (Parser)+import Data.Attoparsec.ByteString (Parser) import Data.ByteString (ByteString) import Control.Monad.IO.Class import Control.Exception
lib/Pdf/Toolbox/Core/Object/Builder.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-} -- | Render 'Object' to bytestring @@ -23,7 +24,12 @@ import qualified Data.ByteString.Char8 as BS8 import qualified Data.ByteString.Lazy as BSL import Data.ByteString.Lazy.Builder++#if MIN_VERSION_bytestring(0, 10, 4)+#else import Data.ByteString.Lazy.Builder.ASCII+#endif+ import Text.Printf import Pdf.Toolbox.Core.Object.Types
lib/Pdf/Toolbox/Core/Parsers/Object.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-} -- | This module contains parsers for pdf objects @@ -25,8 +26,13 @@ import Data.Char import qualified Data.ByteString as BS import qualified Data.ByteString.Char8 as BS8-import Data.Attoparsec (Parser)+import Data.Attoparsec.ByteString (Parser) import qualified Data.Attoparsec.ByteString.Char8 as P++#if MIN_VERSION_attoparsec(0, 12, 0)+import qualified Data.Scientific as Scientific+#endif+ import Control.Applicative import Pdf.Toolbox.Core.Object.Types@@ -75,12 +81,18 @@ -- Right (NumReal 1.0e-2) parseNumber :: Parser Number parseNumber = P.choice [- toNum <$> P.number,+ number, NumReal <$> (P.signed $ read . ("0."++) . BS8.unpack <$> (P.char '.' >> P.takeWhile1 isDigit)) ] where+#if MIN_VERSION_attoparsec(0, 12, 0)+ number = toNum <$> P.scientific+ toNum = either NumReal NumInt . Scientific.floatingOrInteger+#else+ number = toNum <$> P.number toNum (P.I i) = NumInt $ fromIntegral i toNum (P.D d) = NumReal d+#endif -- | -- >>> parseOnly parseStr "(hello)"
lib/Pdf/Toolbox/Core/Parsers/Util.hs view
@@ -7,7 +7,7 @@ ) where -import Data.Attoparsec (Parser)+import Data.Attoparsec.ByteString (Parser) import qualified Data.Attoparsec.ByteString.Char8 as P import Control.Applicative (many)
lib/Pdf/Toolbox/Core/Parsers/XRef.hs view
@@ -13,7 +13,7 @@ where import Data.Int-import Data.Attoparsec (Parser)+import Data.Attoparsec.ByteString (Parser) import qualified Data.Attoparsec.ByteString.Char8 as P import Control.Applicative (many)
lib/Pdf/Toolbox/Core/Writer.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-} -- | Write PDF files --@@ -29,9 +30,15 @@ import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy as BSL import Data.ByteString.Lazy.Builder++#if MIN_VERSION_bytestring(0, 10, 4)+#else import Data.ByteString.Lazy.Builder.ASCII+#endif+ import Data.Function import Data.Monoid+import Control.Applicative import Control.Monad import Control.Monad.Trans.Class import Control.Monad.Trans.State@@ -44,7 +51,7 @@ -- | The monad newtype PdfWriter m a = PdfWriter (StateT PdfState m a)- deriving (Monad, MonadIO, MonadTrans)+ deriving (Functor, Applicative, Monad, MonadIO, MonadTrans) -- | Execute writer action runPdfWriter :: MonadIO m
pdf-toolbox-core.cabal view
@@ -1,15 +1,16 @@ name: pdf-toolbox-core-version: 0.0.2.1+version: 0.0.3.0 synopsis: A collection of tools for processing PDF files. license: BSD3 license-file: LICENSE author: Yuras Shumovich maintainer: Yuras Shumovich <shumovichy@gmail.com>-copyright: Copyright (c) Yuras Shumovich 2012-2013+copyright: Copyright (c) Yuras Shumovich 2012-2014 category: PDF build-type: Simple cabal-version: >=1.8 homepage: https://github.com/Yuras/pdf-toolbox+extra-source-files: changelog.md description: Low level tools for processing PDF files. .@@ -49,7 +50,8 @@ build-depends: base >= 4.6 && < 4.8, bytestring, io-streams,- attoparsec,+ attoparsec >= 0.10,+ scientific, errors, transformers, containers,