diff --git a/build.sbt b/build.sbt index 337d4d1..556890b 100644 --- a/build.sbt +++ b/build.sbt @@ -1,20 +1,7 @@ lazy val root = Project("monkeytail", file(".")) - .settings(publish := {}) - .settings(publishArtifact := false) .settings(name := "monkeytail") - .aggregate( - core, - macros - ) - -lazy val macros = Project("monkeytail-macros", file("monkeytail-macros")) - .settings(name := "monkeytail-macros") .settings(libraryDependencies ++= Seq( "org.scala-lang" % "scala-reflect" % scalaVersion.value, "org.scala-lang" % "scala-compiler" % scalaVersion.value % "provided", "org.scala-lang" % "scala-compiler" % scalaVersion.value % "test" - )) - -lazy val core = Project("monkeytail-core", file("monkeytail-core")) - .settings(name := "monkeytail-core") - .dependsOn(macros) + )) \ No newline at end of file diff --git a/monkeytail-core/src/test/scala/com/sksamuel/monkeytail/ValidationTest.scala b/monkeytail-core/src/test/scala/com/sksamuel/monkeytail/ValidationTest.scala deleted file mode 100644 index e930d54..0000000 --- a/monkeytail-core/src/test/scala/com/sksamuel/monkeytail/ValidationTest.scala +++ /dev/null @@ -1,36 +0,0 @@ -package com.sksamuel.monkeytail - -import cats.data.NonEmptyList -import cats.data.Validated.Invalid -import org.scalatest.{FlatSpec, Matchers} - -class ValidationTest extends FlatSpec with Matchers { - - "Validation Macros" should "build validator" in { - val v1: Validator[Starship] = new Validator[Starship] { - override def validate(t: Starship): this.ValidationResult = { - Invalid(NonEmptyList.of(MaxWarpExceeded, InvalidDesignation)) - } - } - - val v2 = core.validator[Starship] { starship => - starship.maxWarp - } - - v1.validate(Starship("Enterprise", "1701", 12)) shouldBe Invalid(NonEmptyList.of(MaxWarpExceeded, InvalidDesignation)) - } -} - -case object MaxWarpExceeded extends Violation { - override def message = "Max warp exceeded" -} - -case object InvalidDesignation extends Violation { - override def message = "Invalid designation" -} - -case object NullName extends Violation { - override def message = "Starship name cannot be null" -} - -case class Starship(name: String, designation: String, maxWarp: Double) \ No newline at end of file diff --git a/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/ValidationResult.scala b/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/ValidationResult.scala deleted file mode 100644 index fef7399..0000000 --- a/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/ValidationResult.scala +++ /dev/null @@ -1,3 +0,0 @@ -package com.sksamuel.monkeytail - -case class ValidationResult(violations: Seq[Violation]) diff --git a/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/Validator.scala b/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/Validator.scala deleted file mode 100644 index f050873..0000000 --- a/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/Validator.scala +++ /dev/null @@ -1,14 +0,0 @@ -package com.sksamuel.monkeytail - -import cats.data.ValidatedNel - -trait Violation { - def message: String -} - -trait Validator[T] { - - type ValidationResult = ValidatedNel[Violation, T] - - def validate(t: T): ValidationResult -} diff --git a/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/macros/Validate.scala b/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/macros/Validate.scala deleted file mode 100644 index 13b2ebd..0000000 --- a/monkeytail-macros/src/main/scala/com/sksamuel/monkeytail/macros/Validate.scala +++ /dev/null @@ -1,25 +0,0 @@ -package com.sksamuel.monkeytail -package macros - -import scala.language.experimental.macros - -object Validate { - - implicit def apply[T]: Validator[T] = macro applyImpl[T] - - def applyImpl[T: c.WeakTypeTag](c: scala.reflect.macros.whitebox.Context): c.Expr[Validator[T]] = { - import c.universe._ - val tpe = weakTypeTag[T].tpe - - c.Expr[Validator[T]]( - q""" - { - new com.sksamuel.monkeytail.Validator[$tpe] { - override def apply(t: $tpe): com.sksamuel.monkeytail.ValidationResult = { - new com.sksamuel.monkeytail.ValidationResult(Nil) - } - } - } - """) - } -} \ No newline at end of file diff --git a/project/Build.scala b/project/Build.scala index fd2b598..5b75339 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -12,14 +12,13 @@ object Build extends AutoPlugin { val org = "com.sksamuel.monkeytail" val CatsVersion = "1.0.0-RC1" val ScalatestVersion = "3.0.4" - val Slf4jVersion = "1.7.25" } import autoImport._ override def projectSettings = Seq( organization := org, - scalaVersion := "2.11.12", + scalaVersion := "2.12.4", crossScalaVersions := Seq("2.11.12", "2.12.4"), publishMavenStyle := true, resolvers += Resolver.mavenLocal, @@ -32,10 +31,9 @@ object Build extends AutoPlugin { sbtrelease.ReleasePlugin.autoImport.releasePublishArtifactsAction := PgpKeys.publishSigned.value, sbtrelease.ReleasePlugin.autoImport.releaseCrossBuild := true, scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8"), - javacOptions := Seq("-source", "1.7", "-target", "1.7"), + javacOptions := Seq("-source", "1.8", "-target", "1.8"), libraryDependencies ++= Seq( "org.typelevel" %% "cats-core" % CatsVersion, - "org.slf4j" % "slf4j-api" % Slf4jVersion, "org.scalatest" %% "scalatest" % ScalatestVersion % "test" ), publishTo := {