好红宝石yaml图书馆

时间:2012-10-05 02:52:09

标签: ruby yaml

我正在尝试阅读与此类似的yaml文件

SLTs:
      - requests: 600
        concurrency: 50
        targets:
          99%: < 100
          Requests per second: > 500

请注意,“每秒请求数”键中包含空格。我已经阅读了yaml.org中的yaml规范,看起来这没关系。

Ruby 1.9.2带有2个yaml图书馆psych和syck。 Psych无法阅读此文件

couldn't parse YAML at line 132 column 37 (Psych::SyntaxError)

Syck能够解析它,但它无法正常使用延迟作业(我系统的另一个组成部分)。

我尝试过1.9.3,结果相似。

可以使用YAML :: ENGINE.yamler = ...更改YAML的引擎,但我不想更改每个案例的引擎并使用在两种情况下都能正常工作的库。

我用google搜索但找不到任何东西,所以我的问题是:有一个比Ruby标准库更好的库来处理YAML吗?我只需要读取文件。

1 个答案:

答案 0 :(得分:3)

导致问题的不是键中的空格,而是值> 500> indicates a scalar in folded style - 错误是在>之后应该只有评论或换行符。

您需要转义哈希的值:

 99%: '< 100'
 Requests per second: '> 500'