play-twirlは、実行時に呼び出すことができるテンプレート関数を含む Scala ソースを生成するために使用されることを知っています。
play-twirl で任意の Scala ソースファイルを生成する方法はありますか?
たとえば、
次のようなテンプレートを作成して、面倒なメソッド シグネチャの作成を自動化したいと考えています。
src/main/twirl/Foos.scala.scala
object Foos {
@for(i <- 2 to 22){
def foo@i[@(...)](chain: @(...)) = @(...)
}
}
そして、SBTのようなソースファイルを生成します
src_managed/main/scala/Foos.scala
object Foos {
def foo2[A1, A2](chain: A1 ~ A2) = chain match { case a1 ~ a2 => (a1, a2) }
def foo3[A1, A2, A3](chain: A1 ~ A2 ~ A3) = ...
....
def foo22[A1, ..., A22] ....
}
いくつかの Playframework ライブラリ ソースに基づくと、自動化されていないように見えますが、独自のテンプレート フレームワークを使用して同様のことを行っているようです。
繰り返しになりますが、このような設定は Twirl で可能ですか? この種のことを簡単にする代替の sbt プラグインはありますか?