我非常喜欢prism的Schema来验证数据结构。然而,我发现自己现在在Ruby工作,我试图从YAML或JSON中生成一堆模型,以便在我们的Rails应用程序中进行测试。我需要确保从YAML/JSON传入的数据在语义上是正确的,例如hashmap中的某些值必须是布尔值,或字符串,或字符串数组等。
我正在处理的数据示例(Ruby表示法):
@@data = [
{name: "United States",
states: ["New York", "New Jersey", "Texas"],
default_tax: false},
{name: "US Remote",
states: ["Alaska", "Hawaii"],
default_tax: true}
]
最好的ruby风格的方法是什么?有人能推荐一个类似于Schema的库吗?
经过一番研究,看起来hash_validator
是最好的。
用法很简单。将github repo中的示例调整为上面的数据:
# Validations hash
validations =
name: 'string',
states: 'array',
default_tax: 'boolean'
}
validator = HashValidator.validate(@@data[1], validations)
validator.valid?
# => true