diff --git a/README.md b/README.md index 9f0cd9e..16500a9 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ dijon - Dynamic Json in Scala * No external [dependencies](build.sbt) * Less than [100 lines](src/main/scala/com/github/pathikrit/dijon/package.scala) of code * Well [tested][1] +* Performant: uses [scala-pickling](https://github.com/scala/pickling) to generate inlined serialization code at compile-time * Why yet another Scala json library? Well, code speaks more than thousand words: ```scala @@ -105,7 +106,7 @@ Add the following to your `build.sbt` to use `dijon`: ```scala resolvers += "Sonatype releases" at "http://oss.sonatype.org/content/repositories/releases/" -libraryDependency += "com.github.pathikrit" %% "dijon" % "0.2.3" +libraryDependency += "com.github.pathikrit" %% "dijon" % "0.3.0" ``` TODO @@ -116,6 +117,5 @@ TODO * YAML interpolator * Macro for type inference to induce compile-time errors where possible * JSON string interpolator fills in braces, quotes and commas etc -* Scala 2.11 compatibility without warnings [1]: src/test/scala/com/github/pathikrit/dijon/DijonSpec.scala diff --git a/build.sbt b/build.sbt index 4ec67ea..d518e85 100644 --- a/build.sbt +++ b/build.sbt @@ -4,13 +4,17 @@ sonatypeSettings name := "dijon" -version := "0.2.3" +version := "0.3.0" organization := "com.github.pathikrit" +homepage := Some(url("http://github.com/pathikrit/dijon")) + description := "Boiler-free JSON wrangling using Scala dynamic types" -scalaVersion := "2.10.3" +scalaVersion := "2.10.4" + +crossScalaVersions := Seq("2.10.4", "2.11.0-RC4") scalacOptions ++= Seq( "-unchecked", "-deprecation", "-feature", @@ -23,9 +27,22 @@ CoverallsPlugin.coverallsSettings CoverallsPlugin.CoverallsKeys.coverallsToken := Some("m1ICpWHwSZMMvgqeKbUaRE6RFre1p3zws") -libraryDependencies ++= Seq("org.specs2" %% "specs2" % "2.3.10" % "test") -libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-reflect" % _) +autoCompilerPlugins := true + +resolvers ++= Seq(Resolver.sonatypeRepo("snapshots")) + +libraryDependencies ++= Seq( + "org.scala-lang" % "scala-reflect" % scalaVersion.value, + "org.scala-lang" %% "scala-pickling" % "0.8.0-SNAPSHOT", + "org.specs2" %% "specs2" % "2.3.10" % "test", + compilerPlugin("org.scalamacros" % "paradise" % "2.0.0-M7" cross CrossVersion.full) +) + +libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match { + case Some((2, 10)) => Seq("org.scalamacros" %% "quasiquotes" % "2.0.0-M7") + case _ => Seq() +}) pomExtra := { http://github.com/pathikrit/dijon @@ -48,3 +65,5 @@ pomExtra := { } + +licenses += ("MIT", url("http://opensource.org/licenses/MIT")) \ No newline at end of file diff --git a/src/main/scala/com/github/pathikrit/dijon/package.scala b/src/main/scala/com/github/pathikrit/dijon/package.scala index b4143e3..1f23fb4 100644 --- a/src/main/scala/com/github/pathikrit/dijon/package.scala +++ b/src/main/scala/com/github/pathikrit/dijon/package.scala @@ -4,6 +4,8 @@ import scala.collection.mutable import scala.reflect.runtime.universe._ import scala.util.parsing.json.{JSON, JSONObject} +import scala.pickling._ + import com.github.pathikrit.dijon.UnionType.{∨, ∅} package object dijon {