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