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

singleton method Psych.parse_stream

parse_stream(yaml, filename: nil) -> Psych::Nodes::StreamRuby 1.9.3 から[permalink][rdoc][edit]
parse_stream(yaml, filename: nil) {|node| ... } -> ()

YAML ドキュメントをパースします。 yaml が 複数の YAML ドキュメントを含む場合を取り扱うことができます。

ブロックなしの場合は YAML の AST (すべての YAML ドキュメントを保持した Psych::Nodes::Stream オブジェクト)を返します。

ブロック付きの場合は、パースした各 YAML ドキュメントの Psych::Nodes::Document オブジェクトが順にブロックに渡されます。この場合の返り値には意味がありません。

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

[PARAM] yaml:
YAML ドキュメント(文字列 or IO オブジェクト)
[PARAM] filename:
Psych::SyntaxError 発生時にファイル名として表示する文字列。
[EXCEPTION] Psych::SyntaxError:
YAMLドキュメントに文法エラーが発見されたときに発生します

[SEE_ALSO] Psych::Nodes

例
require 'psych'

p Psych.parse_stream("---\n - a\n - b") # => #<Psych::Nodes::Stream:0x00>
例 ブロック付き
require 'psych'

Psych.parse_stream("--- a\n--- b\n") do |doc|
  p doc.children.first.value
end
# => "a"
#    "b"