load(yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false) -> objectRuby 1.9.3 から[permalink][rdoc][edit]load(yaml, filename = nil, fallback: false, symbolize_names: false, freeze: false) -> object-
YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
入力に複数のドキュメントが含まれている場合は、先頭のものを変換して返します。
filenameはパース中に発生した例外のメッセージに用います。- [PARAM]
yaml: - YAML ドキュメント(文字列 or IO オブジェクト)
- [PARAM]
filename: - Psych::SyntaxError 発生時にファイル名として表示する文字列。
- [PARAM]
fallback: -
引数
yamlに空のYAMLを指定した場合の戻り値を指定します。デフォルトは false です。 - [PARAM]
symbolize_names: - ハッシュ(YAMLの仕様では正確にはマッピング)のキーを Symbol に変換するかどうかを指定します。 true を指定した場合は変換します。デフォルトでは文字列に変換されます。
- [PARAM]
freeze: - true を指定すると再帰的に Object#freeze されたオブジェクトを返します。デフォルトは false です。
- [EXCEPTION]
Psych::SyntaxError: - YAMLドキュメントに文法エラーが発見されたときに発生します
- [EXCEPTION]
TypeError: -
yamlに nil を指定したときに発生します
[SEE_ALSO] Psych.parse, Psych.safe_load
例require 'psych' p Psych.load("--- a") # => 'a' p Psych.load("---\n - a\n - b") # => ['a', 'b'] begin Psych.load("--- `", filename: "file.txt") rescue Psych::SyntaxError => ex p ex.file # => 'file.txt' p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5" endキーワード引数
例symbolize_namesに true を指定した場合はハッシュのキーを Symbol に変換して返します。require 'psych' p Psych.load("---\n foo: bar") # => {"foo"=>"bar"} p Psych.load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"} - [PARAM]