有没有像 Clojure 的 Schema 这样的 Ruby 库来验证数据结构?
Is there Ruby library like Clojure's Schema for validating data structures?
我非常喜欢 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 方式是什么?有人可以推荐一个类似于 Schema 的库吗?
经过一些研究,hash_validator
似乎是最好的。
用法很简单。将 github 存储库中的示例改编为我上面的数据:
# Validations hash
validations =
name: 'string',
states: 'array',
default_tax: 'boolean'
}
validator = HashValidator.validate(@@data[1], validations)
validator.valid?
# => true
我非常喜欢 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 方式是什么?有人可以推荐一个类似于 Schema 的库吗?
经过一些研究,hash_validator
似乎是最好的。
用法很简单。将 github 存储库中的示例改编为我上面的数据:
# Validations hash
validations =
name: 'string',
states: 'array',
default_tax: 'boolean'
}
validator = HashValidator.validate(@@data[1], validations)
validator.valid?
# => true