packages feed

property-list 0.0.0.3 → 0.0.0.4

raw patch · 4 files changed

+50/−2 lines, 4 filesdep +data-objectPVP ok

version bump matches the API change (PVP)

Dependencies added: data-object

API changes (from Hackage documentation)

Files

property-list.cabal view
@@ -1,5 +1,5 @@ name:                   property-list-version:                0.0.0.3+version:                0.0.0.4 stability:              experimental license:                PublicDomain @@ -12,7 +12,7 @@  category:               Data, Parsing synopsis:               XML property list parser-description:            Parser for Apple's XML property list 1.0 format.+description:            Parser, data type and formatter for Apple's XML property list 1.0 format.  Library   hs-source-dirs:       src@@ -22,10 +22,12 @@                         Data.PropertyList.Type                         Data.PropertyList.Parse                         Data.PropertyList.PropertyListItem+                        Data.PropertyList.Object   build-depends:        base >= 3 && <5,                         bytestring,                         containers,                          dataenc,+                        data-object,                         HaXml >= 1.19,                         mtl,                         old-locale,
src/Data/PropertyList.hs view
@@ -11,6 +11,7 @@ import Data.PropertyList.Type import Data.PropertyList.Parse import Data.PropertyList.Xml+import Data.PropertyList.Object ({- ToObject instances -})  import Data.PropertyList.PropertyListItem 
+ src/Data/PropertyList/Object.hs view
@@ -0,0 +1,42 @@+{-# LANGUAGE +        FlexibleContexts, UndecidableInstances+  #-}+module Data.PropertyList.Object ({- instances only -}) where++import Data.Object+import Data.PropertyList.Type+import Data.PropertyList.Parse+import Data.PropertyList.Xml+import Data.ByteString.Char8+import qualified Data.Map as M+import Control.Monad+import Control.Monad+import Control.Monad.Error++instance ToScalar UnparsedPlistItem where+    toScalar = pack . showXml . plistItemToPlist . unparsedPlistItemToPlistItem+instance ToObject UnparsedPlistItem where+    toObject = Scalar . toScalar++instance (ToObject (l a), ToObject (m a)) => ToObject (PropertyListS l m a) where+    toObject (PLArray a)    = toObject a+    toObject (PLData bs)    = toObject bs+    toObject (PLDate d)     = showToScalar d+    toObject (PLDict d)     = toObject d+    toObject (PLReal d)     = showToScalar d+    toObject (PLInt i)      = showToScalar i+    toObject (PLString s)   = stringToScalar s+    toObject (PLBool b)     = showToScalar b++instance (ToObject (f (M f a)), ToObject a) => ToObject (M f a) where+    toObject (S x) = toObject x+    toObject (V a) = toObject a++instance (ToScalar k, ToObject v) => ToObject (M.Map k v) where+    toObject = toObject . M.assocs++stringToScalar = Scalar . pack+showToScalar :: Show a => a -> Object+showToScalar = stringToScalar . show++test = toObject (undefined :: PropertyList)
src/Data/PropertyList/Xml.hs view
@@ -20,6 +20,9 @@  type PlistItem = OneOf9 Array Data Date Dict AReal AInteger AString X.True X.False +readPlist :: String -> Either String Plist+readPlist = readXml+ readPlistFromFile :: FilePath -> IO (Either String Plist) readPlistFromFile path = do         contents <- readFile path