Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
class method
Psych.dump
Psych.dump(o) → string of yaml
Psych.dump(o, options) → string of yaml
Psych.dump(o, io) → io object passed in
Psych.dump(o, io, options) → io object passed in
ext/psych/lib/psych.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.3.0/ext/psych/lib/psych.rb, line 505
def self.dump o, io = nil, options = {}
if Hash === io
options = io
io = nil
end
visitor = Psych::Visitors::YAMLTree.create options
visitor << o
visitor.tree.yaml io, options
end
Dump Ruby object o to a YAML string. Optional options may be passed in to control the output format. If an IO object is passed in, the YAML will be dumped to that IO object.
Currently supported options are:
:indentation-
Number of space characters used to indent. Acceptable value should be in
0..9range, otherwise option is ignored.Default:
2. :line_width-
Max character to wrap line at.
Default:
0(meaning “wrap at 81”). :canonical-
Write “canonical”
YAMLform (very verbose, yet strictly formal).Default:
false. :header-
Write
%YAML [version]at the beginning of document.Default:
false.
Example:
Example
# Dump an array, get back a YAML string Psych.dump(['a', 'b']) # => "---\n- a\n- b\n" # Dump an array to an IO object Psych.dump(['a', 'b'], StringIO.new) # => #<StringIO:0x000001009d0890> # Dump an array with indentation set Psych.dump(['a', ['b']], indentation: 3) # => "---\n- a\n- - b\n" # Dump an array to an IO with indentation set Psych.dump(['a', ['b']], StringIO.new, indentation: 3)