Method: Psych.dump
- Defined in:
- lib/psych.rb
.dump(o, io = nil, options = {}) ⇒ Object
call-seq:
Psych.dump(o) -> string of yaml
Psych.dump(o, ) -> string of yaml
Psych.dump(o, io) -> io object passed in
Psych.dump(o, io, ) -> io object passed in
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..9
range, otherwise option is ignored.Default:
2
. :line_width
-
Max character to wrap line at. For unlimited line width use
-1
.Default:
0
(meaning “wrap at 81”). :canonical
-
Write “canonical” YAML form (very verbose, yet strictly formal).
Default:
false
. :header
-
Write
%YAML [version]
at the beginning of document.Default:
false
. :stringify_names
-
Dump symbol keys in Hash objects as string.
Default:
false
.
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)
# Dump hash with symbol keys as string
Psych.dump({a: "b"}, stringify_names: true) # => "---\na: b\n"
515 516 517 518 519 520 521 522 523 524 |
# File 'lib/psych.rb', line 515 def self.dump o, io = nil, = {} if Hash === io = io io = nil end visitor = Psych::Visitors::YAMLTree.create visitor << o visitor.tree.yaml io, end |