packages feed

aeson-yaml 1.0.4.0 → 1.0.5.0

raw patch · 4 files changed

+45/−19 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,17 @@ # Changelog +## 1.0.5.0 - 2019-11-30++### Fixed++  - Encode empty objects as "{}" rather than ""++## 1.0.4.0 - 2019-11-06++### Fixed++  - Quote date strings (e.g. "2038-01-19")+ ## 1.0.3.0 - 2019-11-03  ### Fixed
aeson-yaml.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.12  name:           aeson-yaml-version:        1.0.4.0+version:        1.0.5.0 homepage:       https://github.com/clovyr/aeson-yaml bug-reports:    https://github.com/clovyr/aeson-yaml/issues author:         Patrick Nielsen
src/Data/Aeson/Yaml.hs view
@@ -82,22 +82,23 @@ encodeBuilder :: Bool -> Bool -> Int -> Data.Aeson.Value -> Builder encodeBuilder alwaysQuote newlineBeforeObject level value =   case value of-    Object hm ->-      mconcat $-      (if newlineBeforeObject-         then (prefix :)-         else id) $-      intersperse prefix $ map (keyValue level) (sortOn fst $ HashMap.toList hm)+    Object hm+      | null hm -> bs "{}"+      | otherwise ->+        mconcat $+        (if newlineBeforeObject+           then (prefix :)+           else id) $+        intersperse prefix $+        map (keyValue level) (sortOn fst $ HashMap.toList hm)       where prefix = bs "\n" <> indent level-    Array vec ->-      if Vector.null vec-        then bs " []"-        else mconcat $-             (prefix :) $-             intersperse prefix $-             map-               (encodeBuilder alwaysQuote False (level + 1))-               (Vector.toList vec)+    Array vec+      | null vec -> bs "[]"+      | otherwise ->+        mconcat $+        (prefix :) $+        intersperse prefix $+        map (encodeBuilder alwaysQuote False (level + 1)) (Vector.toList vec)       where prefix = bs "\n" <> indent level <> bs "- "     String s -> encodeText True alwaysQuote level s     Number n -> bl (Data.Aeson.encode n)@@ -109,8 +110,10 @@         [ encodeText False alwaysQuote level k         , ":"         , case v of-            Object _ -> ""-            Array _ -> ""+            Object hm+              | not (null hm) -> ""+            Array vec+              | not (null vec) -> ""             _ -> " "         , encodeBuilder alwaysQuote True (level' + 1) v         ]
test/Test/Data/Aeson/Yaml.hs view
@@ -29,8 +29,17 @@     }  testCases :: [TestCase]-testCases = [tcDataTypes, tcNestedListsAndObjects, tcQuoted]+testCases = [tcDataTypes, tcNestedListsAndObjects, tcQuoted, tcEmptyList] +tcEmptyList :: TestCase+tcEmptyList = +  TestCase+    { tcName = "Empty root list"+    , tcInput = "[]"+    , tcOutput = "[]\n"+    , tcAlwaysQuote = False+    }+ tcDataTypes :: TestCase tcDataTypes =   TestCase@@ -39,6 +48,7 @@         [s| {    "nullValue": null,+   "emptyObject": {},    "isTrue": true,    "isFalse": false,    "numberString": "12345",@@ -59,6 +69,7 @@         [s|asteriskString: "*" boolString: "true" dateString: "2038-01-19"+emptyObject: {} expString: "1e3" isFalse: false isTrue: true