有没有像Clojure的Schema这样的Ruby库来验证数据结构?



我非常喜欢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

相关内容

  • 没有找到相关文章

最新更新