diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2017-03-02 15:36:23 -0800 |
---|---|---|
committer | Stewart Stewart <stewinsalot@gmail.com> | 2017-03-02 15:36:26 -0800 |
commit | 35a171bbadfe3130e95cb3677bf3695d2364a4ac (patch) | |
tree | a0c1df9c7d2a13c813107ce47cae09e3fc22b9c5 | |
parent | 2dfb2c893af3be9100af229d229087700f7c2862 (diff) | |
download | slick-codegen-plugin-35a171bbadfe3130e95cb3677bf3695d2364a4ac.tar.gz slick-codegen-plugin-35a171bbadfe3130e95cb3677bf3695d2364a4ac.tar.bz2 slick-codegen-plugin-35a171bbadfe3130e95cb3677bf3695d2364a4ac.zip |
don't create tables object by default
-rw-r--r-- | src/main/scala/Main.scala | 21 | ||||
-rw-r--r-- | src/main/scala/OutputHelpers.scala | 17 |
2 files changed, 21 insertions, 17 deletions
diff --git a/src/main/scala/Main.scala b/src/main/scala/Main.scala index 5bd84d1..5cfa502 100644 --- a/src/main/scala/Main.scala +++ b/src/main/scala/Main.scala @@ -9,7 +9,7 @@ import slick.codegen.SourceCodeGenerator import slick.driver.JdbcProfile trait TableFileGenerator { self: SourceCodeGenerator => - def writeTablesToFile(profile: String, + def writeTablesToFile(profile: Option[String], folder: String, pkg: String, fileName: String): Unit @@ -22,19 +22,19 @@ trait RowFileGenerator { self: SourceCodeGenerator => object Generator { private def outputSchemaCode(schemaName: String, - profile: String, + profile: Option[String], folder: String, pkg: String, tableGen: TableFileGenerator, rowGen: RowFileGenerator): Unit = { val camelSchemaName = schemaName.split('_').map(_.capitalize).mkString("") - tableGen.writeTablesToFile(profile: String, - folder: String, - pkg: String, + tableGen.writeTablesToFile(profile = profile, + folder = folder, + pkg = pkg, fileName = s"${camelSchemaName}Tables.scala") - rowGen.writeRowsToFile(folder: String, - pkg: String, + rowGen.writeRowsToFile(folder = folder, + pkg = pkg, fileName = s"${camelSchemaName}Rows.scala") } @@ -61,9 +61,10 @@ object Generator { parsedSchemasOpt.getOrElse(Map.empty).foreach { case (schemaName, tables) => - val profile = - s"""slick.backend.DatabaseConfig.forConfig[slick.driver.JdbcProfile]("${uri - .getFragment()}").driver""" + val profile = Option.empty[String] + // TODO: retrieve profile later via configuration + // s"""slick.backend.DatabaseConfig.forConfig[slick.driver.JdbcProfile]("${uri + // .getFragment()}").driver""" val schemaOnlyModel = Await.result( dc.db.run( diff --git a/src/main/scala/OutputHelpers.scala b/src/main/scala/OutputHelpers.scala index 97fb4e9..e547700 100644 --- a/src/main/scala/OutputHelpers.scala +++ b/src/main/scala/OutputHelpers.scala @@ -7,22 +7,25 @@ trait TableOutputHelpers extends TableFileGenerator with OutputHelpers { def schemaName: String def imports: String + private def tableObject(profile: String) = + s"""|/** Stand-alone Slick data model for immediate use */ + |// TODO: change this to `object tables` + |object tables extends { + | val profile = $profile + |} with Tables""".stripMargin + def packageTableCode(headerComment: String, pkg: String, schemaName: String, imports: String, - profile: String): String = + profile: Option[String]): String = s"""|${headerComment.trim().lines.map("// " + _).mkString("\n")} |package $pkg |package $schemaName | |$imports | - |/** Stand-alone Slick data model for immediate use */ - |// TODO: change this to `object tables` - |object `package` extends { - | val profile = $profile - |} with Tables + |${profile.fold("")(tableObject)} | |/** Slick data model trait for extension, choice of backend or usage in the cake pattern. (Make sure to initialize this late.) */ |trait Tables${parentType.fold("")(" extends " + _)} { @@ -31,7 +34,7 @@ trait TableOutputHelpers extends TableFileGenerator with OutputHelpers { |} |""".stripMargin.trim() - def writeTablesToFile(profile: String, + def writeTablesToFile(profile: Option[String], folder: String, pkg: String, fileName: String): Unit = { |