Valuer
require "valuer"
Valuer.value Integer, "20"
=> 20
Valuer.value Integer, "20x"
=> Valuer::Error (invalid value for Integer(): "20x")
Valuer.value Integer, "20x", default: -1
=> -1
Valuer.value Integer, "20", min: 21
=> Valuer::MinimumError (minimum is 21)
Valuer.value Integer, "20", min: 19
=> Valuer::MaximumError (maximum is 19)
Valuer.value Float, "1.2", min: 1, max: 20
=> 1.2
Valuer.value TrueClass, "yes"
=> true
Valuer.value TrueClass, "no"
=> false