Skip to content

droptheplot/enumify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enumify

CI

Enumify is a SBT plugin that will keep enums from your favorite database in sync with Scala types

Getting Started

Add SBT plugin to project/plugins.sbt

addSbtPlugin("com.github.droptheplot" % "enumify" % "0.1")

Add source generator to build.sbt

sourceGenerators in Compile += Def.task {
  val connection: java.sql.Connection = ???

  enumify.Enumify(connection, enumify.sources.PostgreSQL, enumify.renderers.Plain) {
    (sourceManaged in Compile).value / "enumify"
  }
}.taskValue

Available Sources

Available Renderers

Plain

sealed abstract class Mood(value: String)

object Mood {
  case object Sad extends Mood("sad")
  case object Ok extends Mood("ok")
  case object Happy extends Mood("happy")
}

Enumeratum

sealed abstract class Mood extends EnumEntry(override val entryName: String) extends EnumEntry

object Mood extends Enum[Mood] {
  case object Sad extends Mood("sad")
  case object Ok extends Mood("ok")
  case object Happy extends Mood("happy")

  val values = findValues
}

Contributing

Use sbt "testOnly -- -l IntegrationTest" to run only unit tests

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages