要約
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][edit]-
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][edit]self << object
-
変換対象の Ruby オブジェクトを追加します。
- [PARAM] object:
- YAML AST へ変換する Ruby オブジェクト
finish -> Psych::Nodes::Stream|nil
[permalink][rdoc][edit]-
変換を終了し、構築した AST を返します。
このメソッドは2回呼び出さないでください。
[SEE_ALSO] Psych::Visitors::YAMLTree#tree
finished -> bool
[permalink][rdoc][edit]finished? -> bool
-
Psych::Visitors::YAMLTree#finish をすでに呼び出しているならば真を返します。
まだならば偽を返します。
start(encoding = Nodes::Stream::UTF8) -> Psych::Nodes::Stream
[permalink][rdoc][edit]-
Ruby オブジェクトから YAML AST への変換のための準備をします。
Psych::Visitors::YAMLTree#push が呼び出されたとき、まだこのメソッドが呼び出されていなければ push メソッドがこのメソッドを呼び出し、変換の準備をします。
encoding には以下のいずれかを指定できます。
- [PARAM] encoding:
- YAML AST に設定するエンコーディング
started -> bool
[permalink][rdoc][edit]started? -> bool
-
Psych::Visitors::YAMLTree#start をすでに呼び出しているならば真を返します。
まだならば偽を返します。
tree -> Psych::Nodes::Stream|nil
[permalink][rdoc][edit]-
変換を終了し、構築した AST を返します。
内部で finish を呼び出し、変換処理を終了します。
このメソッドを2回以上呼ぶと、2回目以降は nil を返します。
[SEE_ALSO] Psych::Visitors::YAMLTree#finish