plist 0.0.5 → 0.0.6
raw patch · 3 files changed
+14/−8 lines, 3 filesdep +base64-bytestringdep +bytestringdep −dataencPVP ok
version bump matches the API change (PVP)
Dependencies added: base64-bytestring, bytestring
Dependencies removed: dataenc
API changes (from Hackage documentation)
Files
- plist.cabal +3/−2
- src/Text/XML/Plist/Read.hs +6/−2
- src/Text/XML/Plist/Write.hs +5/−4
plist.cabal view
@@ -1,5 +1,5 @@ name: plist-version: 0.0.5+version: 0.0.6 license: BSD3 license-file: LICENSE author: Yuras Shumovich <shumovichy@gmail.com>,@@ -28,7 +28,8 @@ library hs-source-dirs: src build-depends: base >= 4.3 && < 5,- dataenc -any,+ base64-bytestring >= 1.0,+ bytestring >= 0.10, hxt >= 9 && < 10 exposed-modules: Text.XML.Plist Text.XML.Plist.PlObject
src/Text/XML/Plist/Read.hs view
@@ -30,7 +30,9 @@ import Control.Arrow.ArrowTree import Text.XML.HXT.DOM.TypeDefs import Control.Arrow.ArrowIf-import Codec.Binary.Base64+import Data.ByteString.Char8 (pack)+import Data.ByteString (unpack)+import Data.ByteString.Base64 import Data.Maybe -- | Read 'PlObject' from file.@@ -67,12 +69,14 @@ , hasName "dict" :-> (readDict >>> arr PlDict) , hasName "data" :-> ( innerText >>>- arr (decode . unchop . lines) >>>+ arr (decode' . foldr (++) "" . lines) >>> isA isJust >>> arr fromJust >>> arr PlData ) , hasName "date" :-> (innerText >>> arr PlDate) ]+ where+ decode' = either (const Nothing) Just . fmap unpack . decode . pack readDict :: ArrowXml a => a XmlTree [(String, PlObject)] readDict = listA $ readDict' $< listA (getChildren >>> isElem)
src/Text/XML/Plist/Write.hs view
@@ -11,7 +11,7 @@ -- | Generating property list format -- ------------------------------------------------------------------------------+{-# LANGUAGE OverloadedStrings #-} module Text.XML.Plist.Write ( writePlistToFile,@@ -23,15 +23,16 @@ import Text.XML.Plist.PlObject import Text.XML.HXT.Arrow.XmlState-import Codec.Binary.Base64 import Control.Monad (void, liftM)- import Control.Arrow.IOStateListArrow import Text.XML.HXT.Arrow.WriteDocument import Text.XML.HXT.Arrow.XmlArrow import Control.Arrow import Control.Arrow.ArrowList import Text.XML.HXT.DOM.TypeDefs+import Data.ByteString.Base64 (encode, joinWith)+import Data.ByteString (pack)+import Data.ByteString.Char8 (unpack) -- | Write 'PlObject' to file writePlistToFile :: String -> PlObject -> IO ()@@ -70,5 +71,5 @@ elems = concatMap toXml objects toXml (key, val) = [selem "key" [txt key], objectToXml val] objectToXml (PlData dat) = selem "data" [txt $ enc dat] where- enc = (++ "\n") . foldr ((++) . ("\n" ++)) "" . chop 20 . encode+ enc = unpack . joinWith "\n" 20 . encode . pack objectToXml (PlDate date) = selem "date" [txt date]