module YAML

YAML - 缩写自 "YAML Ain't Markup Language"(YAML 不是一种标记语言)

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

在 Ruby 中,YAML 模块是 Psych(YAML 引擎)的别名。

用法

使用 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 库提供,因此可以在该库的文档中找到详细的文档(该文档也是标准库的一部分)。

Security

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

历史

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

如果您愿意,仍然可以使用 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