YAML のパーサ。
このクラスは YAML ドキュメントをパースし、コンストラクタに渡されたハンドラにイベントを通知(呼び出し)します。このイベントを使って YAML の AST を構築したり YAML ドキュメントを別のフォーマット変換したりします。 Psych::Emitter を使うとパースしたドキュメントを元通りに出力することもできます。
Psych::Parser が生成するイベントは Psych::Handler を見てください。
以下の例では YAML ドキュメント に含まれているスカラー値を表示します。
# Handler for detecting scalar values class ScalarHandler < Psych::Handler def scalar value, anchor, tag, plain, quoted, style puts value end end parser = Psych::Parser.new(ScalarHandler.new) parser.parse(yaml_document)
次の例は Psych::Emitter にパースの結果を戻しています。 STDIN からの入力をパース→YAMLフォーマットで STDERR に出力という流れになっています。
parser = Psych::Parser.new(Psych::Emitter.new($stderr)) parser.parse($stdin)
Psych::Parser と Psych::TreeBuilder を組み合わせると YAML の AST を構築することができます。
new(handler = Handler.new) -> Psych::Parser
[permalink][rdoc]新たなパーサオブジェクトを生成して返します。
handler で YAML のイベントを処理するハンドラを指定します。詳しくは Psych::Parser を参照してください。
handler -> Psych::Handler
[permalink][rdoc]セットされているイベントハンドラを返します。
[SEE_ALSO] Psych::Parser#handler=
handler=(val)
[permalink][rdoc]イベントハンドラをセットします。
[SEE_ALSO] Psych::Parser#handler=
mark -> Psych::Parser::Mark
[permalink][rdoc]パーサが現在読み込んでいる入力上の位置を Psych::Parser::Mark オブジェクトで返します。
parse(yaml) -> self
[permalink][rdoc]YAML ドキュメントをパースし、イベントハンドラにイベントを逐次通知します。
[SEE_ALSO] Psych::Parser.new, Psych::Handler, Psych::Parser#handler
ANY -> Integer
[permalink][rdoc]「任意の」エンコーディングを意味します。
UTF16BE -> Integer
[permalink][rdoc]UTF-16BE エンコーディングを表します。
[SEE_ALSO] Psych::Handler#start_stream
UTF16LE -> Integer
[permalink][rdoc]UTF-16LE エンコーディングを表します。
[SEE_ALSO] Psych::Handler#start_stream
UTF8 -> Integer
[permalink][rdoc]UTF-8 エンコーディングを表します。
[SEE_ALSO] Psych::Handler#start_stream