lila/modules/common/src/main/Form.scala

27 lines
715 B
Scala

package lila.common
import play.api.data.Forms._
object Form {
def options(it: Iterable[Int], pattern: String) = it map { d
d -> (pluralize(pattern, d) format d)
}
def options(it: Iterable[Int], code: String, pattern: String) = it map { d
(d + code) -> (pluralize(pattern, d) format d)
}
def numberIn(choices: Iterable[(Int, String)]) =
number.verifying(hasKey(choices, _))
def stringIn(choices: Iterable[(String, String)]) =
nonEmptyText.verifying(hasKey(choices, _))
def hasKey[A](choices: Iterable[(A, _)], key: A) =
choices.map(_._1).toList contains key
private def pluralize(pattern: String, nb: Int) =
pattern.replace("{s}", (nb > 1).fold("s", ""))
}