From b553dfc027a9977f4a5fd802e419181e5a6f3b61 Mon Sep 17 00:00:00 2001 From: Jean Helou Date: Thu, 14 Feb 2019 14:49:08 +0100 Subject: better aligns RouterModule with mill's naming conventions --- .../playlib/src/mill/playlib/RouterModule.scala | 31 +++++----------------- .../test/resources/hello-world/core/conf/routes | 3 --- .../resources/hello-world/core/conf/sub.routes | 2 -- .../test/resources/hello-world/core/routes/routes | 3 +++ .../resources/hello-world/core/routes/sub.routes | 2 ++ .../test/resources/invalid/core/conf/routes | 4 --- .../test/resources/invalid/core/routes/routes | 4 +++ .../test/resources/invalidsub/core/conf/routes | 4 --- .../test/resources/invalidsub/core/conf/sub.routes | 3 --- .../test/resources/invalidsub/core/routes/routes | 4 +++ .../resources/invalidsub/core/routes/sub.routes | 3 +++ .../test/src/mill/playlib/HelloWorldTests.scala | 11 +++++--- 12 files changed, 29 insertions(+), 45 deletions(-) delete mode 100644 contrib/playlib/test/resources/hello-world/core/conf/routes delete mode 100644 contrib/playlib/test/resources/hello-world/core/conf/sub.routes create mode 100644 contrib/playlib/test/resources/hello-world/core/routes/routes create mode 100644 contrib/playlib/test/resources/hello-world/core/routes/sub.routes delete mode 100644 contrib/playlib/test/resources/invalid/core/conf/routes create mode 100644 contrib/playlib/test/resources/invalid/core/routes/routes delete mode 100644 contrib/playlib/test/resources/invalidsub/core/conf/routes delete mode 100644 contrib/playlib/test/resources/invalidsub/core/conf/sub.routes create mode 100644 contrib/playlib/test/resources/invalidsub/core/routes/routes create mode 100644 contrib/playlib/test/resources/invalidsub/core/routes/sub.routes (limited to 'contrib/playlib') diff --git a/contrib/playlib/src/mill/playlib/RouterModule.scala b/contrib/playlib/src/mill/playlib/RouterModule.scala index 63433f3b..ea2593aa 100644 --- a/contrib/playlib/src/mill/playlib/RouterModule.scala +++ b/contrib/playlib/src/mill/playlib/RouterModule.scala @@ -7,42 +7,23 @@ import mill.playlib.api.RouteCompilerType import mill.scalalib.Lib.resolveDependencies import mill.scalalib._ import mill.scalalib.api._ -import os.Path trait RouterModule extends mill.Module with ScalaModule { - /** - * Defines the version of playframework to be used to compile this projects - * routes. - */ def playVersion: T[String] override def generatedSources = T { super.generatedSources() ++ Seq(compileRouter().classes) } - /** - * The [[PathRef]] to the main routes file. - * - * This is the default path for play projects and it should be fine but you - * can override it if needed. - */ - def routesDirectory = T.sources { - millSourcePath / "conf" - } - - private def routesFiles = T { - val files = routesDirectory() - locateFilesBy(files, _.last.endsWith(".routes")) ++ locateFilesBy(files, _.last == "routes") - } + def routes = T.sources { millSourcePath / 'routes } - private def locateFilesBy(files: Seq[PathRef], p: Path => Boolean) = { - files.flatMap(file => { - os.walk(file.path).filter(p).map(f => PathRef(f)) - }) + private def routeFiles = T { + val paths = routes().flatMap(file => os.walk(file.path)) + val routeFiles=paths.filter(_.ext=="routes") ++ paths.filter(_.last == "routes") + routeFiles.map(f=>PathRef(f)) } - /** * A [[Seq]] of additional imports to be added to the routes file. * Defaults to : @@ -88,7 +69,7 @@ trait RouterModule extends mill.Module with ScalaModule { T.ctx().log.debug(s"compiling play routes with ${playVersion()} worker") RouteCompilerWorkerModule.routeCompilerWorker().compile( toolsClasspath().map(_.path), - routesFiles().map(_.path), + routeFiles().map(_.path), routesAdditionalImport, generateForwardsRouter, generateReverseRouter, diff --git a/contrib/playlib/test/resources/hello-world/core/conf/routes b/contrib/playlib/test/resources/hello-world/core/conf/routes deleted file mode 100644 index f71b0cdd..00000000 --- a/contrib/playlib/test/resources/hello-world/core/conf/routes +++ /dev/null @@ -1,3 +0,0 @@ -GET / controllers.HomeController.index -GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) --> /sub sub.Routes \ No newline at end of file diff --git a/contrib/playlib/test/resources/hello-world/core/conf/sub.routes b/contrib/playlib/test/resources/hello-world/core/conf/sub.routes deleted file mode 100644 index 4597a19b..00000000 --- a/contrib/playlib/test/resources/hello-world/core/conf/sub.routes +++ /dev/null @@ -1,2 +0,0 @@ -GET / controllers.SubController.index -GET /assets/*file controllers.Assets.versioned(path="/public/sub", file: Asset) diff --git a/contrib/playlib/test/resources/hello-world/core/routes/routes b/contrib/playlib/test/resources/hello-world/core/routes/routes new file mode 100644 index 00000000..f71b0cdd --- /dev/null +++ b/contrib/playlib/test/resources/hello-world/core/routes/routes @@ -0,0 +1,3 @@ +GET / controllers.HomeController.index +GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) +-> /sub sub.Routes \ No newline at end of file diff --git a/contrib/playlib/test/resources/hello-world/core/routes/sub.routes b/contrib/playlib/test/resources/hello-world/core/routes/sub.routes new file mode 100644 index 00000000..4597a19b --- /dev/null +++ b/contrib/playlib/test/resources/hello-world/core/routes/sub.routes @@ -0,0 +1,2 @@ +GET / controllers.SubController.index +GET /assets/*file controllers.Assets.versioned(path="/public/sub", file: Asset) diff --git a/contrib/playlib/test/resources/invalid/core/conf/routes b/contrib/playlib/test/resources/invalid/core/conf/routes deleted file mode 100644 index 5c946fc6..00000000 --- a/contrib/playlib/test/resources/invalid/core/conf/routes +++ /dev/null @@ -1,4 +0,0 @@ -GET / controllers.HomeController.index --> /sub sub.Routes -GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) -BOB =error controllers.HomeController.error(foo) \ No newline at end of file diff --git a/contrib/playlib/test/resources/invalid/core/routes/routes b/contrib/playlib/test/resources/invalid/core/routes/routes new file mode 100644 index 00000000..5c946fc6 --- /dev/null +++ b/contrib/playlib/test/resources/invalid/core/routes/routes @@ -0,0 +1,4 @@ +GET / controllers.HomeController.index +-> /sub sub.Routes +GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) +BOB =error controllers.HomeController.error(foo) \ No newline at end of file diff --git a/contrib/playlib/test/resources/invalidsub/core/conf/routes b/contrib/playlib/test/resources/invalidsub/core/conf/routes deleted file mode 100644 index 5c946fc6..00000000 --- a/contrib/playlib/test/resources/invalidsub/core/conf/routes +++ /dev/null @@ -1,4 +0,0 @@ -GET / controllers.HomeController.index --> /sub sub.Routes -GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) -BOB =error controllers.HomeController.error(foo) \ No newline at end of file diff --git a/contrib/playlib/test/resources/invalidsub/core/conf/sub.routes b/contrib/playlib/test/resources/invalidsub/core/conf/sub.routes deleted file mode 100644 index 9c844a4a..00000000 --- a/contrib/playlib/test/resources/invalidsub/core/conf/sub.routes +++ /dev/null @@ -1,3 +0,0 @@ -GET / controllers.SubController.index -GET /assets/*file controllers.Assets.versioned(path="/public/sub", file: Asset) -BOB =error controllers.HomeController.error(foo) \ No newline at end of file diff --git a/contrib/playlib/test/resources/invalidsub/core/routes/routes b/contrib/playlib/test/resources/invalidsub/core/routes/routes new file mode 100644 index 00000000..5c946fc6 --- /dev/null +++ b/contrib/playlib/test/resources/invalidsub/core/routes/routes @@ -0,0 +1,4 @@ +GET / controllers.HomeController.index +-> /sub sub.Routes +GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset) +BOB =error controllers.HomeController.error(foo) \ No newline at end of file diff --git a/contrib/playlib/test/resources/invalidsub/core/routes/sub.routes b/contrib/playlib/test/resources/invalidsub/core/routes/sub.routes new file mode 100644 index 00000000..9c844a4a --- /dev/null +++ b/contrib/playlib/test/resources/invalidsub/core/routes/sub.routes @@ -0,0 +1,3 @@ +GET / controllers.SubController.index +GET /assets/*file controllers.Assets.versioned(path="/public/sub", file: Asset) +BOB =error controllers.HomeController.error(foo) \ No newline at end of file diff --git a/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala b/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala index 20e8ce55..54e8a057 100644 --- a/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala +++ b/contrib/playlib/test/src/mill/playlib/HelloWorldTests.scala @@ -85,21 +85,24 @@ object HelloWorldTests extends TestSuite { assert(unchangedEvalCount == 0) } - 'compileRouter - workspaceTest(HelloWorld, resourcePath = invalidResourcePath) { eval => + "compileRouter invalid routes"- workspaceTest(HelloWorld, resourcePath = invalidResourcePath) { + eval => val eitherResult = eval.apply(HelloWorld.core.compileRouter) val Left(Failure(message, x)) = eitherResult val expectedMessage = "Unable to compile play routes\ncompilation error in " + - HelloWorld.millSourcePath.toIO.getAbsolutePath + "/core/conf/routes at line 4, column" + + HelloWorld.core.millSourcePath.toIO.getAbsolutePath + "/routes/routes at line 4, " + + "column" + " 1: HTTP Verb (GET, POST, ...), include (->), comment (#), or modifier line (+) expected" assert( message == expectedMessage ) } - 'compileRouter - workspaceTest(HelloWorld, resourcePath = invalidSubResourcePath) { eval => + "compileRouter invalid sub.routes " - workspaceTest(HelloWorld, resourcePath = invalidSubResourcePath) { + eval => val eitherResult = eval.apply(HelloWorld.core.compileRouter) val Left(Failure(message, x)) = eitherResult val expectedMessage = "Unable to compile play routes\ncompilation error in " + - HelloWorld.millSourcePath.toIO.getAbsolutePath + "/core/conf/sub.routes at line 3, column" + + HelloWorld.core.millSourcePath.toIO.getAbsolutePath + "/routes/sub.routes at line 3, column" + " 1: HTTP Verb (GET, POST, ...), include (->), comment (#), or modifier line (+) expected" assert( message == expectedMessage -- cgit v1.2.3