要約
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][edit]
- 
新たなパーサオブジェクトを生成して返します。 handler で YAML のイベントを処理するハンドラを指定します。詳しくは Psych::Parser を参照してください。 - [PARAM] handler:
- YAML のイベントを処理するハンドラ
 
インスタンスメソッド
- handler -> Psych::Handler[permalink][rdoc][edit]
- 
セットされているイベントハンドラを返します。 [SEE_ALSO] Psych::Parser#handler= 
- handler=(val)[permalink][rdoc][edit]
- 
イベントハンドラをセットします。 - [PARAM] val:
- セットするハンドラ
 [SEE_ALSO] Psych::Parser#handler= 
- mark -> Psych::Parser::Mark[permalink][rdoc][edit]
- 
パーサが現在読み込んでいる入力上の位置を Psych::Parser::Mark オブジェクトで返します。 
- parse(yaml) -> self[permalink][rdoc][edit]
- 
YAML ドキュメントをパースし、イベントハンドラにイベントを逐次通知します。 [SEE_ALSO] Psych::Parser.new, Psych::Handler, Psych::Parser#handler 
定数
- ANY -> Integer[permalink][rdoc][edit]
- 
「任意の」エンコーディングを意味します。 
- UTF16BE -> Integer[permalink][rdoc][edit]
- 
UTF-16BE エンコーディングを表します。 [SEE_ALSO] Psych::Handler#start_stream 
- UTF16LE -> Integer[permalink][rdoc][edit]
- 
UTF-16LE エンコーディングを表します。 [SEE_ALSO] Psych::Handler#start_stream 
- UTF8 -> Integer[permalink][rdoc][edit]
- 
UTF-8 エンコーディングを表します。 [SEE_ALSO] Psych::Handler#start_stream