load(yaml, filename: nil, fallback: false, symbolize_names: false) -> object
[permalink][rdoc][edit]load(yaml, filename = nil, fallback: false, symbolize_names: 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 を指定した場合は変換します。デフォルトでは文字列に変換されます。
- [EXCEPTION] Psych::SyntaxError:
- YAMLドキュメントに文法エラーが発見されたときに発生します
[SEE_ALSO] Psych.parse
Psych.load("--- a") # => 'a' 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 に変換して返します。
Psych.load("---\n foo: bar") # => {"foo"=>"bar"} Psych.load("---\n foo: bar", symbolize_names: true) # => {:foo=>"bar"}