このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.0 リファレンスマニュアル

singleton method Psych.load_stream

load_stream(yaml, filename = nil, fallback: [], **kwargs) -> [object]Ruby 1.9.3 から[permalink][rdoc][edit]
load_stream(yaml, filename = nil, fallback: [], **kwargs) {|obj| ... } -> ()

複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。

ブロックなしの場合はオブジェクトの配列を返します。

例
require 'psych'

p Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']

ブロックありの場合は各オブジェクトを引数としてそのブロックを呼び出します。

例
require 'psych'

list = []
Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby|
  list << ruby
end
p list # => ['foo', 'bar']

ブロックなしの場合に yaml がドキュメントを 1 つも含まないときは、fallback を返します。

fallback の例
require 'psych'

p Psych.load_stream("", fallback: [:none]) # => [:none]

filename はパース中に発生した例外のメッセージに用います。

filename はキーワード引数 filename: でも指定できます。位置引数で指定した場合は、$VERBOSE が真のときに非推奨である旨の警告が出ます。

その他のキーワード引数 kwargs は、各ドキュメントを変換する Psych::Nodes::Node#to_ruby にそのまま渡します。

[PARAM] yaml:
YAML ドキュメント(文字列 or IO オブジェクト)
[PARAM] filename:
Psych::SyntaxError 発生時にファイル名として表示する文字列。
[PARAM] fallback:
ブロックなしの場合に、yaml がドキュメントを 1 つも含まないときの返り値を指定します。デフォルトは [] です。
[PARAM] kwargs:
Psych::Nodes::Node#to_ruby に渡すキーワード引数(symbolize_names や freeze など)を指定します。
[EXCEPTION] Psych::SyntaxError:
YAMLドキュメントに文法エラーが発見されたときに発生します