Skip to content
This module provides a Ruby interface for data serialization in YAML format.
Ruby Shell
Branch: master
Clone or download
hsbt Merge pull request #1 from ruby/use-actions
Use GitHub Actions instead of Travis CI.
Latest commit 8314be8 Dec 9, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
bin bundle gem yaml Aug 6, 2019
lib Remove YAML::VERSION because it conflicts with Psych::VERSION Nov 13, 2019
test Update the latest core test libraries. Sep 30, 2019
.gitignore
Gemfile Use Gemfile instead of Gem::Specification#add_development_dependency. Aug 19, 2019
LICENSE.txt
README.md
Rakefile
yaml.gemspec Remove YAML::VERSION because it conflicts with Psych::VERSION Nov 13, 2019

README.md

YAML

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.

Installation

Add this line to your application's Gemfile:

gem 'yaml'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yaml

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.

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 http://yaml.org for spec details and other helpful information.

Psych is maintained by Aaron Patterson on github: https://github.com/tenderlove/psych

Syck can also be found on github: https://github.com/tenderlove/syck

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/yaml.

You can’t perform that action at this time.