diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aa8a44..704d502 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v0.3.0 (2016-03-24) + +* Updated to sangria-marshalling-api v0.2.0 + ## v0.2.1 (2016-03-17) * Updated play-json to v2.5.0 diff --git a/README.md b/README.md index ebf7cc1..c6e6c5d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ SBT Configuration: ```scala -libraryDependencies += "org.sangria-graphql" %% "sangria-play-json" % "0.2.1" +libraryDependencies += "org.sangria-graphql" %% "sangria-play-json" % "0.3.0" ``` ## License diff --git a/build.sbt b/build.sbt index 6b20841..05f2fe7 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,6 @@ name := "sangria-play-json" organization := "org.sangria-graphql" -version := "0.2.2-SNAPSHOT" +version := "0.3.0" description := "Sangria play-json marshalling" homepage := Some(url("http://sangria-graphql.org")) @@ -10,10 +10,10 @@ scalaVersion := "2.11.8" scalacOptions ++= Seq("-deprecation", "-feature") libraryDependencies ++= Seq( - "org.sangria-graphql" %% "sangria-marshalling-api" % "0.1.1", + "org.sangria-graphql" %% "sangria-marshalling-api" % "0.2.0", "com.typesafe.play" %% "play-json" % "2.5.0", - "org.sangria-graphql" %% "sangria-marshalling-testkit" % "0.1.2" % "test", + "org.sangria-graphql" %% "sangria-marshalling-testkit" % "0.2.0" % "test", "org.scalatest" %% "scalatest" % "2.2.6" % "test" ) diff --git a/src/main/scala/sangria/marshalling/playJson.scala b/src/main/scala/sangria/marshalling/playJson.scala index 0b48663..6996e03 100644 --- a/src/main/scala/sangria/marshalling/playJson.scala +++ b/src/main/scala/sangria/marshalling/playJson.scala @@ -7,11 +7,13 @@ import scala.util.Try object playJson extends PlayJsonSupportLowPrioImplicits { implicit object PlayJsonResultMarshaller extends ResultMarshaller { type Node = JsValue + type MapBuilder = ArrayMapBuilder[Node] - def emptyMapNode = JsObject(Seq.empty) + def emptyMapNode(keys: Seq[String]) = new ArrayMapBuilder[Node](keys) + def addMapNodeElem(builder: MapBuilder, key: String, value: Node, optional: Boolean) = builder.add(key, value) + + def mapNode(builder: MapBuilder) = JsObject(builder.toSeq) def mapNode(keyValues: Seq[(String, JsValue)]) = JsObject(keyValues) - def addMapNodeElem(node: JsValue, key: String, value: JsValue, optional: Boolean) = - node.asInstanceOf[JsObject] + (key → value) def arrayNode(values: Vector[JsValue]) = JsArray(values)