diff options
Diffstat (limited to 'src/main/scala/OutputHelpers.scala')
-rw-r--r-- | src/main/scala/OutputHelpers.scala | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/scala/OutputHelpers.scala b/src/main/scala/OutputHelpers.scala new file mode 100644 index 0000000..ce22f2a --- /dev/null +++ b/src/main/scala/OutputHelpers.scala @@ -0,0 +1,28 @@ +trait OutputHelpers extends slick.codegen.OutputHelpers { + + def imports: String + + def headerComment: String = "" + + override def packageCode(profile: String, + pkg: String, + container: String, + parentType: Option[String]): String = { + val traitName = container.capitalize + "SchemaDef" + s"""|${headerComment.trim().lines.map("// " + _).mkString("\n")} + |package $pkg + | + |$imports + | + |/** Stand-alone Slick data model for immediate use */ + |object $container extends { + | val profile = $profile + |} with $traitName + | + |/** Slick data model trait for extension, choice of backend or usage in the cake pattern. (Make sure to initialize this late.) */ + |trait $traitName${parentType.fold("")(" extends " + _)} { + | import profile.api._ + | ${indent(code)} + |}""".stripMargin.trim() + } +} |