Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > psychライブラリ > Psychモジュール > safe_load
safe_load(yaml, whitelist_classes = [], whitelist_symbols = [], aliases = false, filename = nil) -> object
[permalink][rdoc]安全に YAML YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
デフォルトでは以下のクラスのオブジェクトしか変換しません。
再帰的なデータ構造はデフォルトでは許可されていません。 任意のクラスを許可するには whitelist_classes を指定すると、 そのクラスが追加されます。例えば Date クラスを許可するには 以下のように書いてください:
Psych.safe_load(yaml, [Date])
すると上のクラス一覧に加えて Date クラスが読み込まれます。
エイリアスは aliases パラメーターを変更することで明示的に許可できます。
例:
x = [] x << x yaml = Psych.dump x Psych.safe_load yaml # => 例外発生 Psych.safe_load yaml, [], [], true # => エイリアスが読み込まれる
yaml にホワイトリストにないクラスが含まれていた場合は、 Psych::DisallowedClass 例外が発生します。
yaml がエイリアスを含んでいて aliases パラメーターが false の時、 Psych::BadAlias 例外が発生します。
filename はパース中に発生した例外のメッセージに用います。
キーワード引数 symbolize_names に true を指定した場合はハッシュのキー を Symbol に変換して返します。