模块 YAML

YAML 不是标记语言

此模块为 Ruby 提供 YAML 格式的数据序列化接口。

YAML 模块是 Psych 的别名,YAML 引擎是为 Ruby 设计的。

用法

使用 YAML 可以非常简单,例如

require 'yaml'
# Parse a YAML string
YAML.load("--- foo") #=> "foo"

# Emit some YAML
YAML.dump("foo")     # => "--- foo\n...\n"
{ :a => 'b'}.to_yaml  # => "---\n:a: b\n"

由于实现是由 Psych 库提供的,详细的文档可以在该库的文档中找到(也是标准库的一部分)。

安全

不要使用 YAML 加载不受信任的数据。这样做是不安全的,并可能允许恶意输入在你的应用程序内执行任意代码。请参阅 doc/security.rdoc 获取更多信息。

历史

Syck 是 why the lucky stiff 开发的 Ruby 标准库中最初的 YAML 实现。

如果你喜欢,仍然可以使用 Syck 来解析和发出 YAML,但是你现在必须安装 ‘syck’ gem 才能使用它。

在旧版本的 Ruby 中,例如 <= 1.9,仍然提供 Syck,但是它在 Ruby 2.0.0 版本发布时被完全移除。

更多信息

有关实现的更多高级细节,请参阅 Psych,并查看 yaml.org 获取规范详细信息和其他有用的信息。

Psych 由 Aaron Patterson 在 github 上维护:github.com/ruby/psych

Syck 也可以在 github 上找到:github.com/ruby/syck