on master help sign in
Merge pull request #64 from BartAdv/master

Fix JSON number formatting

commit509dad8486e81c52e6a402d8d192c887c6da1373 authorMichael Xavier <michael@michaelxavier.net> dateWed 13 Sep 2017, 08:34 (9 years ago) parent315a60626461a9
3 files changed+8−3
katip/katip.cabal+1 katip/src/Katip/Scribes/Handle.hs+5−1 katip/test/Katip/Tests/Scribes/Handle-text.golden+2−2
katip/katip.cabal+1
@@ -74,6 +74,7 @@ library
7474 , mtl >= 2.0 && < 2.3
7575 , transformers-base >= 0.3 && < 0.6
7676 , resourcet >= 1.1 && < 1.2
77+ , scientific >= 0.3.3.0
7778 , microlens >= 0.2.0.0 && < 0.5
7879 , microlens-th >= 0.1.0.0 && < 0.5
7980 , semigroups
katip/src/Katip/Scribes/Handle.hs+5−1
@@ -10,6 +10,7 @@ import Control.Monad
1010import Data.Aeson
1111import qualified Data.HashMap.Strict as HM
1212import Data.Monoid
13+import Data.Scientific as S
1314import Data.Text (Text)
1415import Data.Text.Lazy.Builder
1516import Data.Text.Lazy.IO as T
@@ -34,10 +35,13 @@ getKeys verb a = concat (renderPair A.<$> HM.toList (payloadObject verb a))
3435 case v of
3536 Object o -> concat [renderPair (k <> "." <> k', v') | (k', v') <- HM.toList o]
3637 String t -> [fromText (k <> ":" <> t)]
37− Number n -> [fromText (k <> ":") <> fromString (show n)]
38+ Number n -> [fromText (k <> ":") <> fromString (formatNumber n)]
3839 Bool b -> [fromText (k <> ":") <> fromString (show b)]
3940 Null -> [fromText (k <> ":null")]
4041 _ -> mempty -- Can't think of a sensible way to handle arrays
42+ formatNumber :: Scientific -> String
43+ formatNumber n =
44+ formatScientific Generic (if isFloating n then Nothing else Just 0) n
4145
4246
4347-------------------------------------------------------------------------------
katip/test/Katip/Tests/Scribes/Handle-text.golden+2−2
@@ -36,5 +36,5 @@ newline][Info][example][7331][1337][note.deep:some note] message
3636[2016-06-12 12:34:56][foo][Info][example][7331][1337][note.deep:some note] message
3737[2016-06-12 12:34:56][foo][Info][example][7331][1337][note.deep:some note][main:Some.Module path/Some/Module.hs:30:1] message
3838[2016-06-12 12:34:56][foo][Info][example][7331][1337][note.deep:some note][main:Some.Module путь/Some/Module.hs:3000:9000] message
39−[2016-06-12 12:34:56][foo][Info][example][7331][1337][sub:null][text:][num:0.0][float:0.0] message
40−[2016-06-12 12:34:56][foo][Info][example][7331][1337][sub.note.deep:some note][text:note][num:10.0][float:5.5] message
39+[2016-06-12 12:34:56][foo][Info][example][7331][1337][sub:null][text:][num:0][float:0] message
40+[2016-06-12 12:34:56][foo][Info][example][7331][1337][sub.note.deep:some note][text:note][num:10][float:5.5] message