Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > psychライブラリ > Psych::Nodes::Nodeクラス

class Psych::Nodes::Node

クラスの継承リスト: Psych::Nodes::Node < Enumerable < Object < Kernel < BasicObject

要約

YAML AST のノードを表す抽象クラスです。

このクラスをインスタンス化することは不適切です。 すべてのノードのクラスはこのクラスの派生クラスです。

目次

インスタンスメソッド
children each tag to_ruby transform to_yaml yaml

インスタンスメソッド

children -> [Psych::Nodes::Node][permalink][rdoc]

子ノードの集合を配列で返します。

each -> Enumerator[permalink][rdoc]
each {|node| ... } -> ()

self のノードをルートとする部分木の各ノードを引数として ブロックを呼び出します。

ブロックを省略した場合は上のような繰り返しをする Enumerator オブジェクトを返します。

tag -> String | nil[permalink][rdoc]

ノードに付加されたタグを返します。

タグが付加されていない場合は nil を返します。

ast = Psych.parse(<<EOS)
---
- !!str a
- b
EOS

p ast.root.children[0].value  # => "a"
p ast.root.children[0].tag    # => "tag:yaml.org,2002:str"

p ast.root.children[1].value  # => "b"
p ast.root.children[1].tag    # => nil
to_ruby -> object[permalink][rdoc]
transform -> object

AST を ruby のオブジェクトに変換します。

yaml(io=nil, options={}) -> String | IO[permalink][rdoc]
to_yaml(io=nil, options={}) -> String | IO

AST を YAML ドキュメントに変換します。

io に IO オブジェクトを指定した場合は、その オブジェクトに変換後のドキュメントが書き込まれます。 この場合は io を返り値として返します。

io を省略した(nil を指定した)場合には変換後のドキュメントを 文字列で返します。

Psych::Nodes::Stream 以外を変換しようとすると、AST として不正で あるためエラーが発生します。

options には以下が指定できます。

:version

YAML document に付加するバージョンを [major, minor] という配列、 もしくは文字列で指定します

:header

出力にヘッダを付けるかどうかを真偽値で指定します

:indentation

インデントのレベルを 1 から 9 までの整数で指定します

:canonical

出力の style が canonical であるかどうかを真偽値で指定します

:line_width

「好ましい」行幅を整数値で指定します

[PARAM] io:
書き込み先の IO
[PARAM] options:
オプション