class Psych::Visitors::YAMLTree

要約

Ruby オブジェクトから YAML の AST を構築するためのクラスです。

builder = Psych::Visitors::YAMLTree.new
builder << { :foo => 'bar' }
builder << ["baz", "bazbaz"]
builder.tree # => #<Psych::Nodes::Stream ... > A stream containing two documents
puts tree.to_yaml
# =>
# ---
# :foo: bar
# ---
# - baz
# - bazbaz

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

特異メソッド

new(options = {}, emitter = Psych::TreeBuilder.new, ss = Psych::ScalarScanner.new) -> Psych::Visitors::YAMLTree[permalink][rdoc]

YAMLTree オブジェクトを生成します。

options には構築される YAML AST に設定されるオプション設定を指定します。 Psych.dump と同じオプションが指定できます。

emitter には AST の構築に使われる Psych::TreeBuilder オブジェクトを渡します。

ss は Ruby の String が YAML document 上で quote が必要かどうかを判定するための Psych::ScalarScanner オブジェクトを渡します。

emitter, ss は通常デフォルトのものから変える必要はないでしょう。

[PARAM] options:
オプション
[PARAM] emitter:
AST の構築に使う Psych::TreeBuilder オブジェクト
[PARAM] ss:
文字列に quite が必要かどうかを判定するための Psych::ScalarScanner オブジェクト

インスタンスメソッド

push(object)[permalink][rdoc]
self << object

変換対象の Ruby オブジェクトを追加します。

[PARAM] object:
YAML AST へ変換する Ruby オブジェクト
finish -> Psych::Nodes::Stream|nil[permalink][rdoc]

変換を終了し、構築した AST を返します。

このメソッドは2回呼び出さないでください。

[SEE_ALSO] Psych::Visitors::YAMLTree#tree

finished -> bool[permalink][rdoc]
finished? -> bool

Psych::Visitors::YAMLTree#finish をすでに呼び出しているならば真を返します。

まだならば偽を返します。

start(encoding = Nodes::Stream::UTF8) -> Psych::Nodes::Stream[permalink][rdoc]

Ruby オブジェクトから YAML AST への変換のための準備をします。

Psych::Visitors::YAMLTree#push が呼び出されたとき、まだこのメソッドが呼び出されていなければ push メソッドがこのメソッドを呼び出し、変換の準備をします。

encoding には以下のいずれかを指定できます。

[PARAM] encoding:
YAML AST に設定するエンコーディング
started -> bool[permalink][rdoc]
started? -> bool

Psych::Visitors::YAMLTree#start をすでに呼び出しているならば真を返します。

まだならば偽を返します。

tree -> Psych::Nodes::Stream|nil[permalink][rdoc]

変換を終了し、構築した AST を返します。

内部で finish を呼び出し、変換処理を終了します。

このメソッドを2回以上呼ぶと、2回目以降は nil を返します。

[SEE_ALSO] Psych::Visitors::YAMLTree#finish