Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seratch/xsbt-scalag-plugin
Scala code/resource Generator Plugin for xsbt
https://github.com/seratch/xsbt-scalag-plugin
Last synced: about 1 month ago
JSON representation
Scala code/resource Generator Plugin for xsbt
- Host: GitHub
- URL: https://github.com/seratch/xsbt-scalag-plugin
- Owner: seratch
- License: other
- Created: 2012-09-08T15:43:53.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2013-09-01T00:55:29.000Z (about 11 years ago)
- Last Synced: 2024-08-25T00:52:57.855Z (3 months ago)
- Language: Scala
- Homepage:
- Size: 551 KB
- Stars: 5
- Watchers: 6
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# xsbt-scalag-plugin
Scala code/resource Generator Plugin for xsbt.
[![Build Status](https://secure.travis-ci.org/seratch/xsbt-scalag-plugin.png?branch=master)](http://travis-ci.org/seratch/xsbt-scalag-plugin)
## Setup
### project/plugins.sbt
```scala
addSbtPlugin("com.github.seratch" % "xsbt-scalag-plugin" % "[0.2,)")
```### project/MyScalagDef.scala
```scala
import sbt._
import sbt.Keys._
import scalag._object MyScalagDef extends Plugin {
ScalagPlugin.addCommands(builtin.all:_*)
}
```### build.sbt
```scala
seq(scalagSettings: _*)
```## How to use?
### g/generate command
Now `g/generate` command is available on xsbt.
```sh
$ 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,
```sh
sbt "g specs2 controllers.UserController"
```following file will be created.
### src/test/scala/controllers/UserControllerSpec.scala
```scala
package controllersimport org.specs2.mutable._
class UserControllerSpec extends Specification {
"UserController" should {
"be available" in {
todo
}
}}
```## How to extend?
### Create your own generator
Main usage of scalag is creating your own generators. Edit scalag.scala as follows.
```scala
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
## License
Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.html