on develop help sign in
Updating to latest version of aeson
commit97611433ae1ea3158b48a970547f3100aa651cc2 authorBrendan Hay <brendan.g.hay@gmail.com> dateSat 11 Feb 2017, 10:37 (10 years ago) parent09f8ccc
4 files changed+6−45
gen/gogol-gen.cabal+1−2 gen/src/Gen/Orphans.hs−34 gen/src/Gen/Types/Id.hs+4−9 gen/src/Main.hs+1
gen/gogol-gen.cabal+1−2
@@ -28,7 +28,6 @@ executable gogol-gen
2828 , Gen.Formatting
2929 , Gen.IO
3030 , Gen.JSON
31− , Gen.Orphans
3231 , Gen.Syntax
3332 , Gen.TH
3433 , Gen.Text
@@ -44,7 +43,7 @@ executable gogol-gen
4443 ghc-options: -Wall -threaded
4544
4645 build-depends:
47− aeson
46+ aeson >= 1
4847 , attoparsec
4948 , base >= 4.8
5049 , bifunctors
gen/src/Gen/Orphans.hsdeleted−34
@@ -1,34 +0,0 @@
1−{-# LANGUAGE FlexibleInstances #-}
2−
3−{-# OPTIONS_GHC -fno-warn-orphans #-}
4−
5−-- Module : Gen.Orphans
6−-- Copyright : (c) 2015-2016 Brendan Hay
7−-- License : Mozilla Public License, v. 2.0.
8−-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
9−-- Stability : provisional
10−-- Portability : non-portable (GHC extensions)
11−
12−module Gen.Orphans where
13−
14−import Data.Aeson
15−import Data.Bifunctor
16−import Data.Hashable
17−import qualified Data.HashMap.Strict as Map
18−import Data.String
19−import qualified Data.Text as Text
20−import Language.Haskell.Exts.Build
21−import Language.Haskell.Exts.Pretty
22−import Language.Haskell.Exts.Syntax
23−
24−instance Hashable Name
25−
26−instance IsString Name where fromString = name
27−instance IsString QName where fromString = UnQual . name
28−instance IsString QOp where fromString = op . sym
29−
30−instance ToJSON a => ToJSON (Map.HashMap Name a) where
31− toJSON = toJSON
32− . Map.fromList
33− . map (first (Text.pack . prettyPrint))
34− . Map.toList
gen/src/Gen/Types/Id.hs+4−9
@@ -58,12 +58,10 @@ import Control.Applicative
5858import Control.Monad
5959import Data.Aeson hiding (Bool, String)
6060import qualified Data.Attoparsec.Text as A
61−import Data.Bifunctor (first)
6261import qualified Data.CaseInsensitive as CI
6362import Data.Foldable (foldl')
6463import Data.Function (on)
6564import Data.Hashable
66−import qualified Data.HashMap.Strict as Map
6765import Data.List (intersperse)
6866import Data.List (elemIndex, nub, sortOn)
6967import Data.Semigroup hiding (Sum)
@@ -75,7 +73,6 @@ import Data.Text.Manipulate
7573import Formatting
7674import Gen.Orphans ()
7775import Gen.Text
78−import Gen.Types.Map
7976import GHC.Generics (Generic)
8077import Language.Haskell.Exts.Build
8178import Language.Haskell.Exts.Syntax (Exp, Name (..))
@@ -167,9 +164,8 @@ instance FromJSON Global where
167164instance ToJSON Global where
168165 toJSON = toJSON . global
169166
170−instance FromJSON v => FromJSON (Map Global v) where
171− parseJSON = fmap (Map.fromList . map (first mkGlobal) . Map.toList)
172− . parseJSON
167+instance FromJSONKey Global
168+instance ToJSONKey Global
173169
174170gid :: Format a (Global -> a)
175171gid = later (Build.fromText . global)
@@ -177,9 +173,8 @@ gid = later (Build.fromText . global)
177173newtype Local = Local { local :: Text }
178174 deriving (Eq, Ord, Show, Generic, Hashable, FromJSON, ToJSON, IsString)
179175
180−instance FromJSON v => FromJSON (Map Local v) where
181− parseJSON = fmap (Map.fromList . map (first Local) . Map.toList)
182− . parseJSON
176+instance FromJSONKey Local
177+instance ToJSONKey Local
183178
184179lid :: Format a (Local -> a)
185180lid = later (Build.fromText . local)
gen/src/Main.hs+1
@@ -18,6 +18,7 @@ import Control.Error
1818import Control.Lens hiding ((<.>))
1919import Control.Monad.State
2020import Data.List (nub, sort)
21+import Data.Monoid ((<>))
2122import Data.String
2223import qualified Data.Text as Text
2324import qualified Filesystem as FS