aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/models/Grade.scala
blob: c76010940bfe6a79d67fb299bea4eb53a6873d9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package reading.models

import enumeratum._

sealed trait Grade extends EnumEntry with Ordered[Grade] {
  import Grade._

  def compare(that: Grade): Int = {
    values.indexOf(this) - values.indexOf(that)
  }

  def prettyPrint(): String = this match {
    case Sixieme => "6ème"
    case Cinquieme => "5ème"
    case Quatrieme => "4ème"
    case Troisieme => "3ème"
  }
}

object Grade extends Enum[Grade] {
  val values = findValues

  case object Sixieme extends Grade
  case object Cinquieme extends Grade
  case object Quatrieme extends Grade
  case object Troisieme extends Grade

  def from(program: Program): Grade = {
    import Program._

    program match {
      case Monstre | RecitsAventure | CreationPoetique | Resister => Sixieme
      case VoyageEtAventure | Autrui | UniversNouveaux | Heros | HommeEtNature => Cinquieme
      case DireAmour | Valeurs | Reel | Informer | Ville => Quatrieme
      case SeRaconter | TraversSociete | VisionsPoetiques | Agir | ProgresReveScientifique => Troisieme
    }
  }
}