Sha256: 727fae4c2ec26c97ed845c30154d4393df89fc87a4def23d0241bd990fc9854c

Contents?: true

Size: 713 Bytes

Versions: 37

Compression:

Stored size: 713 Bytes

Contents

import Allergen.Allergen

class Allergies {
  private lazy val allergenList = Allergen.values

  def isAllergicTo(allergen: Allergen, score: Int): Boolean =
    (allergen.id & score) != 0

  def allergies(score: Int): List[Allergen] =
    allergenList.filter(a => isAllergicTo(a, score)).toList
}

object Allergies {
  def apply() = new Allergies
}

object Allergen extends Enumeration {
  type Allergen = Value

  val Eggs = Value(1, "Eggs")
  val Peanuts = Value(2, "Peanuts")
  val Shellfish = Value(4, "Shellfish")
  val Strawberries = Value(8, "Strawberries")
  val Tomatoes = Value(16, "Tomatoes")
  val Chocolate = Value(32, "Chocolate")
  val Pollen = Value(64, "Pollen")
  val Cats = Value(128, "Cats")
}

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
trackler-2.0.5.0 tracks/scala/exercises/allergies/example.scala
trackler-2.0.4.0 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.9 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.8 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.7 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.6 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.5 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.4 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.3 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.2 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.1 tracks/scala/exercises/allergies/example.scala
trackler-2.0.3.0 tracks/scala/exercises/allergies/example.scala
trackler-2.0.2.0 tracks/scala/exercises/allergies/example.scala
trackler-2.0.1.2 tracks/scala/exercises/allergies/example.scala
trackler-2.0.1.1 tracks/scala/exercises/allergies/example.scala
trackler-2.0.1.0 tracks/scala/exercises/allergies/example.scala
trackler-2.0.0.10 tracks/scala/exercises/allergies/example.scala
trackler-2.0.0.9 tracks/scala/exercises/allergies/example.scala
trackler-2.0.0.8 tracks/scala/exercises/allergies/example.scala
trackler-2.0.0.7 tracks/scala/exercises/allergies/example.scala