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

singleton method Psych.unsafe_load

unsafe_load(yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false, strict_integer: false, parse_symbols: true) -> 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 を指定すると再帰的に Object#freeze されたオブジェクトを返します
[PARAM] strict_integer:
true を指定すると、"1,000" のようなカンマを含む数値を Integer に変換せず、文字列として返します。デフォルトは false です。
[PARAM] parse_symbols:
false を指定すると、":foo" のような文字列を Symbol に変換せず、文字列として返します。デフォルトは true です。
[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']