packages feed

hydrogen-data 0.7.1 → 0.10

raw patch · 4 files changed

+142/−12 lines, 4 filesdep +hydrogen-parsingdep −hydrogen-utildep ~hydrogen-preludedep ~hydrogen-syntaxPVP ok

version bump matches the API change (PVP)

Dependencies added: hydrogen-parsing

Dependencies removed: hydrogen-util

Dependency ranges changed: hydrogen-prelude, hydrogen-syntax

API changes (from Hackage documentation)

+ Hydrogen.Data: getBool :: Monad m => Data -> m Bool
+ Hydrogen.Data: getConstant :: Monad m => Data -> m String
+ Hydrogen.Data: getDate :: Monad m => Data -> m Day
+ Hydrogen.Data: getDateTime :: Monad m => Data -> m ZonedTime
+ Hydrogen.Data: getLink :: Monad m => Data -> m String
+ Hydrogen.Data: getNodeList :: Data -> [Data]
+ Hydrogen.Data: getNodeMap :: Data -> Map String Data
+ Hydrogen.Data: getNumber :: Monad m => Data -> m Rational
+ Hydrogen.Data: getString :: Monad m => Data -> m String
+ Hydrogen.Data: getTime :: Monad m => Data -> m TimeOfDay
+ Hydrogen.Data: getUUID :: Monad m => Data -> m UUID
+ Hydrogen.Data: getVersion :: Monad m => Data -> m Version
+ Hydrogen.Data: isBool :: Data -> Bool
+ Hydrogen.Data: isConstant :: Data -> Bool
+ Hydrogen.Data: isDate :: Data -> Bool
+ Hydrogen.Data: isDateTime :: Data -> Bool
+ Hydrogen.Data: isLink :: Data -> Bool
+ Hydrogen.Data: isNode :: Data -> Bool
+ Hydrogen.Data: isNumber :: Data -> Bool
+ Hydrogen.Data: isString :: Data -> Bool
+ Hydrogen.Data: isTime :: Data -> Bool
+ Hydrogen.Data: isUUID :: Data -> Bool
+ Hydrogen.Data: isVersion :: Data -> Bool
+ Hydrogen.Data: parseData :: Parser POPs Data

Files

+ README.md view
hydrogen-data.cabal view
@@ -1,15 +1,15 @@ name:                 hydrogen-data-version:              0.7.1-homepage:             https://github.com/scravy/hydrogen-data+version:              0.10+homepage:             https://scravy.de/hydrogen-data/ synopsis:             Hydrogen Data license:              BSD3 license-file:         LICENSE-extra-source-files:   CHANGELOG.md+extra-source-files:   CHANGELOG.md, README.md author:               Julian Fleischer-maintainer:           julfleischer@paypal.com+maintainer:           julian@scravy.de category:             Language build-type:           Simple-cabal-version:        >=1.18+cabal-version:        >=1.14  source-repository head     type:             git@@ -21,9 +21,9 @@                       , Hydrogen.Data.Types   build-depends:      base ==4.7.*                       , containers ==0.5.*-                      , hydrogen-prelude ==0.7.1-                      , hydrogen-syntax ==0.7.1-                      , hydrogen-util ==0.7.1+                      , hydrogen-prelude ==0.10+                      , hydrogen-parsing ==0.10+                      , hydrogen-syntax ==0.10                       , nicify ==1.1.*                       , parsec ==3.1.*                       , uuid ==1.3.*
src/Hydrogen/Data.hs view
@@ -1,17 +1,41 @@ module Hydrogen.Data (     emptyNode+  , parseData   , loadData   , merge   , Data+  , isNode+  , isNumber+  , isString+  , isVersion+  , isUUID+  , isBool+  , isDateTime+  , isDate+  , isTime+  , isLink+  , isConstant+  , getNodeMap+  , getNodeList+  , getNumber+  , getString+  , getVersion+  , getUUID+  , getBool+  , getDateTime+  , getDate+  , getTime+  , getLink+  , getConstant   ) where -import Hydrogen.Prelude+import Hydrogen.Prelude hiding (isNumber)  import Hydrogen.Syntax.Parser import Hydrogen.Data.Parser import Hydrogen.Data.Types -import Hydrogen.Util.Parsec hiding (parse)+import Hydrogen.Parsing hiding (parse)  import qualified Data.Map as Map @@ -26,4 +50,111 @@ loadData :: FilePath -> IO (Either SomethingBad Data) loadData fp = (parseData <+< parse fp) <$> readFile fp +isNode, isNumber, isString, isVersion, isUUID, isBool,+  isDateTime, isDate, isTime, isLink, isConstant+    :: Data -> Bool++isNode = \case+    DNode _ _ -> True+    _ -> False++isNumber = \case+    DNumber _ -> True+    _ -> False++isString = \case+    DString _ -> True+    _ -> False++isVersion = \case+    DVersion _ -> True+    _ -> False++isUUID = \case+    DUUID _ -> True+    _ -> False++isBool = \case+    DBool _ -> True+    _ -> False++isDateTime = \case+    DDateTime _ -> True+    _ -> False++isDate = \case+    DDate _ -> True+    _ -> False++isTime = \case+    DTime _ -> True+    _ -> False++isLink = \case+    DLink _ -> True+    _ -> False++isConstant = \case+    DConstant _ -> True+    _ -> False++getNodeMap :: Data -> Map String Data+getNodeMap = \case+    DNode keyValueMap _ -> keyValueMap+    _ -> Map.empty++getNodeList :: Data -> [Data]+getNodeList = \case+    DNode _ xs -> xs+    _ -> []++getNumber :: Monad m => Data -> m Rational+getNumber = \case+    DNumber r -> return r+    _ -> fail "not a DNumber"++getString :: Monad m => Data -> m String+getString = \case+    DString r -> return r+    _ -> fail "not a DString"++getVersion :: Monad m => Data -> m Version+getVersion = \case+    DVersion v -> return v+    _ -> fail "not a DVersion"++getUUID :: Monad m => Data -> m UUID+getUUID = \case+    DUUID u -> return u+    _ -> fail "not a DUUID"++getBool :: Monad m => Data -> m Bool+getBool = \case+    DBool b -> return b+    _ -> fail "not a DBool"++getDateTime :: Monad m => Data -> m ZonedTime+getDateTime = \case+    DDateTime d -> return d+    _ -> fail "not a DDateTime"++getDate :: Monad m => Data -> m Day+getDate = \case+    DDate d -> return d+    _ -> fail "not a DDate"++getTime :: Monad m => Data -> m TimeOfDay+getTime = \case+    DTime d -> return d+    _ -> fail "not a DTime"++getLink :: Monad m => Data -> m String+getLink = \case+    DLink l -> return l+    _ -> fail "not a DLink"++getConstant :: Monad m => Data -> m String+getConstant = \case+    DConstant c -> return c+    _ -> fail "not a DConstant" 
src/Hydrogen/Data/Parser.hs view
@@ -5,8 +5,7 @@  import Hydrogen.Syntax.Types -import Hydrogen.Util.Parsec-import Hydrogen.Util.Read+import Hydrogen.Parsing  import qualified Data.Map as Map