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

时间:2015-05-15 15:46:24

标签: ruby-on-rails ruby clojure

我非常喜欢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的库吗?

1 个答案:

答案 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