aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2016-10-10 17:49:30 -0400
committerStewart Stewart <stewinsalot@gmail.com>2016-10-10 17:49:30 -0400
commit66a7a7a7c133da4d02815f77977b213f294c5dd4 (patch)
treeb4f8a1bb0a804cfb900d879ed63c7ded6aecaab5
parent94c324e249ab3e5848191602c3549cef350e83b1 (diff)
downloaddriver-core-66a7a7a7c133da4d02815f77977b213f294c5dd4.tar.gz
driver-core-66a7a7a7c133da4d02815f77977b213f294c5dd4.tar.bz2
driver-core-66a7a7a7c133da4d02815f77977b213f294c5dd4.zip
move implicits into companion objects
-rw-r--r--src/main/scala/com/drivergrp/core/core.scala10
-rw-r--r--src/main/scala/com/drivergrp/core/time.scala12
2 files changed, 14 insertions, 8 deletions
diff --git a/src/main/scala/com/drivergrp/core/core.scala b/src/main/scala/com/drivergrp/core/core.scala
index 158447f..a82bcc8 100644
--- a/src/main/scala/com/drivergrp/core/core.scala
+++ b/src/main/scala/com/drivergrp/core/core.scala
@@ -25,18 +25,20 @@ package object core {
type Id[+Tag] = Long @@ Tag
object Id {
+ implicit def idEqual[T]: Equal[Id[T]] = Equal.equal[Id[T]](_ == _)
+ implicit def idOrdering[T]: Ordering[Id[T]] = Ordering.by(i => i: Long)
+
def apply[Tag](value: Long) = value.asInstanceOf[Id[Tag]]
}
- implicit def idEqual[T]: Equal[Id[T]] = Equal.equal[Id[T]](_ == _)
- implicit def idOrdering[T]: Ordering[Id[T]] = Ordering.by(i => i: Long)
type Name[+Tag] = String @@ Tag
object Name {
+ implicit def nameEqual[T]: Equal[Name[T]] = Equal.equal[Name[T]](_ == _)
+ implicit def nameOrdering[T]: Ordering[Name[T]] = Ordering.by(n => n: String)
+
def apply[Tag](value: String) = value.asInstanceOf[Name[Tag]]
}
- implicit def nameEqual[T]: Equal[Name[T]] = Equal.equal[Name[T]](_ == _)
- implicit def nameOrdering[T]: Ordering[Name[T]] = Ordering.by(n => n: String)
object revision {
final case class Revision[T](id: String)
diff --git a/src/main/scala/com/drivergrp/core/time.scala b/src/main/scala/com/drivergrp/core/time.scala
index 9bafb00..e04343b 100644
--- a/src/main/scala/com/drivergrp/core/time.scala
+++ b/src/main/scala/com/drivergrp/core/time.scala
@@ -21,19 +21,23 @@ object time {
final case class Time(millis: Long) extends AnyVal {
- def isBefore(anotherTime: Time): Boolean = millis < anotherTime.millis
+ def isBefore(anotherTime: Time): Boolean = implicitly[Ordering[Time]].lt(this, anotherTime)
- def isAfter(anotherTime: Time): Boolean = millis > anotherTime.millis
+ def isAfter(anotherTime: Time): Boolean = implicitly[Ordering[Time]].gt(this, anotherTime)
def advanceBy(duration: Duration): Time = Time(millis + duration.toMillis)
}
+ object Time {
+
+ implicit def timeOrdering: Ordering[Time] = Ordering.by(_.millis)
+ }
+
+
final case class TimeRange(start: Time, end: Time) {
def duration: Duration = FiniteDuration(end.millis - start.millis, MILLISECONDS)
}
- implicit def timeOrdering: Ordering[Time] = Ordering.by(_.millis)
-
def startOfMonth(time: Time) = {
Time(make(new GregorianCalendar()) { cal =>
cal.setTime(new Date(time.millis))