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

class Psych::Parser

クラスの継承リスト: Psych::Parser < Object < Kernel < BasicObject

要約

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::ParserPsych::TreeBuilder を組み合わせると YAML の AST を構築することができます。

目次

特異メソッド
new
インスタンスメソッド
handler handler= mark parse
定数
ANY UTF16BE UTF16LE UTF8

特異メソッド

new(handler = Handler.new) -> Psych::Parser[permalink][rdoc]

新たなパーサオブジェクトを生成して返します。

handler で YAML のイベントを処理するハンドラを指定します。 詳しくは Psych::Parser を参照してください。

[PARAM] handler:
YAML のイベントを処理するハンドラ

インスタンスメソッド

handler -> Psych::Handler[permalink][rdoc]

セットされているイベントハンドラを返します。

[SEE_ALSO] Psych::Parser#handler=

handler=(val)[permalink][rdoc]

イベントハンドラをセットします。

[PARAM] val:
セットするハンドラ

[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