plist 0.0.4 → 0.0.5
raw patch · 5 files changed
+24/−2 lines, 5 files
Files
- README +1/−0
- plist.cabal +2/−1
- src/Text/XML/Plist.hs +2/−0
- src/Text/XML/Plist/Read.hs +9/−0
- src/Text/XML/Plist/Write.hs +10/−1
README view
@@ -24,3 +24,4 @@ Yuras Shumovich <shumovichy@gmail.com> Michael Tolly <tolly@wisc.edu> Philip Lundrigan <philiplundrigan@gmail.com>+Moritz Angermann <moritz@lichtzwerge.de>
plist.cabal view
@@ -1,10 +1,11 @@ name: plist-version: 0.0.4+version: 0.0.5 license: BSD3 license-file: LICENSE author: Yuras Shumovich <shumovichy@gmail.com>, Michael Tolly <tolly@wisc.edu> Philip Lundrigan <philiplundrigan@gmail.com>+ Moritz Angermann <moritz@lichtzwerge.de> maintainer: Yuras Shumovich <shumovichy@gmail.com> copyright: (c) 2009, 2012 Yuras Shumovich category: XML
src/Text/XML/Plist.hs view
@@ -16,7 +16,9 @@ PlObject(..), writePlistToFile,+writePlistToString, readPlistFromFile,+readPlistFromString, objectToPlist, plistToObject, objectToXml,
src/Text/XML/Plist/Read.hs view
@@ -15,6 +15,7 @@ module Text.XML.Plist.Read ( readPlistFromFile,+readPlistFromString, plistToObject, xmlToObject @@ -38,6 +39,14 @@ res <- runX $ readDocument opts fileName >>> plistToObject case res of [] -> fail $ "can't parse " ++ fileName+ (x:_) -> return x++-- | Read 'PlObject' from string.+readPlistFromString :: SysConfigList -> String -> IO PlObject+readPlistFromString opts string = do+ res <- runX $ readString opts string >>> plistToObject+ case res of+ [] -> fail $ "can't parse string " ++ string (x:_) -> return x -- | Arrow that converts XML tree to 'PlObject'.
src/Text/XML/Plist/Write.hs view
@@ -15,6 +15,7 @@ module Text.XML.Plist.Write ( writePlistToFile,+writePlistToString, objectToPlist, objectToXml @@ -23,7 +24,7 @@ import Text.XML.Plist.PlObject import Text.XML.HXT.Arrow.XmlState import Codec.Binary.Base64-import Control.Monad (void)+import Control.Monad (void, liftM) import Control.Arrow.IOStateListArrow import Text.XML.HXT.Arrow.WriteDocument@@ -40,6 +41,14 @@ writePlist :: String -> IOSLA (XIOState s) PlObject XmlTree writePlist fileName = objectToPlist >>> writeDocument [withIndent yes, withAddDefaultDTD yes] fileName++-- | Write 'PlObject' to String+writePlistToString :: PlObject -> IO String+writePlistToString object = liftM concat $ runX (constA object >>> writePlist')++writePlist' :: IOSLA (XIOState s) PlObject String+writePlist' = objectToPlist >>>+ writeDocumentToString [withIndent yes, withAddDefaultDTD yes] -- | Arrow to convert 'PlObject' to plist with root element and DTD declaration. objectToPlist :: ArrowDTD a => a PlObject XmlTree