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

singleton method Psych.unsafe_load

unsafe_load(yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false) -> objectRuby 3.1 から[permalink][rdoc][edit]

YAML ドキュメント yaml を Ruby のデータ構造(オブジェクト)に変換します。

Psych.load と異なりクラスの制限を行わず、任意の Ruby オブジェクトに変換します。外部から与えられた信頼できない YAML ドキュメントの変換には使わないでください。信頼できないドキュメントには Psych.safe_load を使ってください。

入力に複数のドキュメントが含まれている場合は、先頭のものを変換して返します。

yaml が空の場合は fallback で指定した値(デフォルトは false)を返します。

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

キーワード引数 symbolize_names に true を指定した場合はハッシュのキーを Symbol に変換して返します。

キーワード引数 freeze に true を指定した場合は再帰的に Object#freeze したオブジェクトを返します。

[PARAM] yaml:
YAML ドキュメント(文字列 or IO オブジェクト)
[PARAM] filename:
Psych::SyntaxError 発生時にファイル名として表示する文字列
[PARAM] fallback:
引数 yaml に空の YAML を指定した場合の戻り値。デフォルトは false です
[PARAM] symbolize_names:
ハッシュのキーを Symbol に変換するかどうか
[PARAM] freeze:
true を指定すると再帰的に freeze されたオブジェクトを返します
[EXCEPTION] Psych::SyntaxError:
YAML ドキュメントに文法エラーが発見されたときに発生します
[EXCEPTION] TypeError:
yaml に nil を指定したときに発生します

[SEE_ALSO] Psych.load, Psych.safe_load

require 'psych'

p Psych.unsafe_load("--- a")             # => 'a'
p Psych.unsafe_load("---\n - a\n - b")   # => ['a', 'b']