aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/models/Level.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/reading/models/Level.scala')
-rw-r--r--src/main/scala/reading/models/Level.scala41
1 files changed, 22 insertions, 19 deletions
diff --git a/src/main/scala/reading/models/Level.scala b/src/main/scala/reading/models/Level.scala
index c297912..ebec020 100644
--- a/src/main/scala/reading/models/Level.scala
+++ b/src/main/scala/reading/models/Level.scala
@@ -1,22 +1,25 @@
package reading.models
-object Level {
- val filters: Seq[Filter] =
- Seq(
- new Filter {
- def filter(book: Book): Boolean = book.pages < 200
- val kind: FilterKind = LevelKind
- val name: String = "facile"
- },
- new Filter {
- def filter(book: Book): Boolean = book.pages >= 200 && book.pages < 400
- val kind: FilterKind = LevelKind
- val name: String = "moyen"
- },
- new Filter {
- def filter(book: Book): Boolean = book.pages > 400
- val kind: FilterKind = LevelKind
- val name: String = "difficile"
- }
- )
+import enumeratum._
+
+sealed trait Level extends EnumEntry with Ordered[Level] {
+ import Level._
+
+ def compare(that: Level): Int = {
+ values.indexOf(that) - values.indexOf(this)
+ }
+
+ override def toString(): String = this match {
+ case Facile => "facile"
+ case Moyen => "moyen"
+ case Difficile => "difficile"
+ }
+}
+
+object Level extends Enum[Level] {
+ val values = findValues
+
+ case object Facile extends Level
+ case object Moyen extends Level
+ case object Difficile extends Level
}