Scala code/resource Generator Plugin for xsbt.
addSbtPlugin("com.github.seratch" % "xsbt-scalag-plugin" % "[0.2,)")
import sbt._
import sbt.Keys._
import scalag._
object MyScalagDef extends Plugin {
ScalagPlugin.addCommands(builtin.all:_*)
}
seq(scalagSettings: _*)
Now g/generate
command is available on xsbt.
$ sbt
> g
Usage: g [task-name] [args...]
project Set up a new project
class Generates a new class file
object Generates a new object file
specs2 Generates a new spec2 file for the specified class
ScalaTest Generates a new ScalaTest file for the specified class
>
When you execute "specs2" command,
sbt "g specs2 controllers.UserController"
following file will be created.
package controllers
import org.specs2.mutable._
class UserControllerSpec extends Specification {
"UserController" should {
"be available" in {
todo
}
}
}
Main usage of scalag is creating your own generators. Edit scalag.scala as follows.
object MyScalagDef extends Plugin {
ScalagPlugin.addCommands(builtin.all:_*)
// Add your own command
ScalagPlugin.addCommand(
namespace = "play-scaffold",
args = Seq("class-name", "field-name:field-type ..."),
description = "Generates a scaffold for Play Framework 2.x Scala",
operation = { case ScalagInput(className :: fields, settings) =>
// TODO Anyone?
}
)
}
See also:
https://github.com/seratch/xsbt-scalag-plugin/blob/master/src/main/scala/scalag/builtin.scala
https://github.com/seratch/xsbt-scalag-plugin/wiki/Scalag-Commands
Apache License, Version 2.0