diff options
author | Sergey Nastich <nastich@users.noreply.github.com> | 2018-04-03 10:57:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-03 10:57:14 -0700 |
commit | bdf9ec57f213eb652ba5fb3b21973d028034d40e (patch) | |
tree | 2d267f0dc9be85e6bb9bc4286868b37d12315fa7 /src/main/scala/xyz/driver/core/date.scala | |
parent | 322bbc9010e20195e5b0bb58e703961738ffb89d (diff) | |
download | driver-core-bdf9ec57f213eb652ba5fb3b21973d028034d40e.tar.gz driver-core-bdf9ec57f213eb652ba5fb3b21973d028034d40e.tar.bz2 driver-core-bdf9ec57f213eb652ba5fb3b21973d028034d40e.zip |
Add enumeratum support to JSON format and generators (#144)v1.8.12
* Add enumeratum support to JSON format and generators
* Move enumeratum serializers into their own object. Add enumeratum unmarshaller. Add entities to derive JsonFormats instead of having to type them externally.
Diffstat (limited to 'src/main/scala/xyz/driver/core/date.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/date.scala | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index fe35c91..5454093 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -2,12 +2,13 @@ package xyz.driver.core import java.util.Calendar -import scala.util.Try - +import enumeratum._ import scalaz.std.anyVal._ -import scalaz.Scalaz.stringInstance import scalaz.syntax.equal._ +import scala.collection.immutable.IndexedSeq +import scala.util.Try + /** * Driver Date type and related validators/extractors. * Day, Month, and Year extractors are from ISO 8601 strings => driver...Date integers. @@ -15,8 +16,8 @@ import scalaz.syntax.equal._ */ object date { - sealed trait DayOfWeek - object DayOfWeek { + sealed trait DayOfWeek extends EnumEntry + object DayOfWeek extends Enum[DayOfWeek] { case object Monday extends DayOfWeek case object Tuesday extends DayOfWeek case object Wednesday extends DayOfWeek @@ -25,9 +26,11 @@ object date { case object Saturday extends DayOfWeek case object Sunday extends DayOfWeek - val All: Set[DayOfWeek] = Set(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) + val values: IndexedSeq[DayOfWeek] = findValues + + val All: Set[DayOfWeek] = values.toSet - def fromString(day: String): Option[DayOfWeek] = All.find(_.toString === day) + def fromString(day: String): Option[DayOfWeek] = withNameInsensitiveOption(day) } type Day = Int @@ Day.type |