Last Modified
2014-07-15 09:00:19 -0700
Requires
  • psych
  • syck

Description

YAML Ain't Markup Language

This module provides a Ruby interface for data serialization in YAML format.

You can choose from one of two YAML engines that ship with Ruby 1.9. By default Psych is used but the old unmaintained Syck may chosen.

Usage

Working with YAML can be very simple, for example:

require 'yaml' # STEP ONE, 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"

Security

Do not use YAML to load untrusted data. Doing so is unsafe and could allow malicious input to execute arbitrary code inside your application. Please see doc/security.rdoc for more information.

Syck

Syck was the original for YAML implementation in Ruby’s standard library developed by why the lucky stiff.

If you prefer, you can still use Syck by changing the YAML::ENGINE like so:

YAML::ENGINE.yamler = 'syck'
# switch back to the default Psych
YAML::ENGINE.yamler = 'psych'

In older Ruby versions, ie. <= 1.9, Syck is still provided, however it was completely removed with the release of Ruby 2.0.0.

More info

For more advanced details on the implementation see Psych, and also check out yaml.org for spec details and other helpful information.

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus