YAML Ain’t Markup Language
This module provides a Ruby interface for data serialization in YAML format.
The underlying implementation is the libyaml wrapper Psych
.
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"
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 for 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/tenderlove/psych
Syck
can also be found on github: github.com/tenderlove/syck