Module: YAML
Relationships & Source Files | |
Defined in: | lib/yaml.rb |
Overview
YAML
Ain’t Markup Language
This module provides a Ruby interface for data serialization in YAML
format.
The YAML module is an alias of Psych, the YAML
engine for Ruby.
Usage
Working with YAML
can be very simple, for example:
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"
As the implementation is provided by the Psych library, detailed documentation can be found in that library’s docs (also part of standard library).
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.
History
Syck was the original YAML
implementation in Ruby’s standard library developed by why the lucky stiff.
You can still use Syck, if you prefer, for parsing and emitting YAML
, but you must install the ‘syck’ gem now in order to use it.
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.
Psych is maintained by Aaron Patterson on github: github.com/ruby/psych
Syck can also be found on github: github.com/ruby/syck