class Psych::Emitter
クラスの継承リスト: Psych::Emitter < Psych::Handler < Object < Kernel < BasicObject
要約
Psych::Parser でパースし、生じたイベントから YAML ドキュメントを再構築するようなハンドラです。
以下の例では STDIN から YAML ドキュメントを入力し、 再構築した YAML ドキュメントを STDERR に出力します。
parser = Psych::Parser.new(Psych::Emitter.new($stderr)) parser.parse($stdin)
また、以下のようにイベントを手動で発生させることで YAML ドキュメントを構築させることもできます。 各メソッドの意味については Psych::Handler を参照してください。
require 'psych' require 'stringio' output = StringIO.new emitter = Psych::Emitter.new(output) emitter.start_stream(Psych::Parser::UTF8) emitter.start_document([1, 1], [], false) emitter.start_mapping(nil, nil, false, Psych::Nodes::Mapping::BLOCK) emitter.scalar("a", nil, nil, true, false, Psych::Nodes::Scalar::PLAIN) emitter.scalar("12", nil, nil, true, false, Psych::Nodes::Scalar::PLAIN) emitter.scalar("xyz", nil, nil, true, false, Psych::Nodes::Scalar::PLAIN) emitter.scalar("23", nil, nil, false, true, Psych::Nodes::Scalar::SINGLE_QUOTED) emitter.end_mapping emitter.end_document(false) emitter.end_stream puts output.string # => # %YAML 1.1 # --- # a: 12 # xyz: '23' # ...
目次
- 特異メソッド
- new
- インスタンスメソッド
- canonical canonical= indentation indentation= line_width line_width=
特異メソッド
new(io) -> Psych::Emitter-
Emitter オブジェクトを生成して返します。
- [PARAM] io:
- 出力先の IO オブジェクト
インスタンスメソッド
canonical -> bool-
出力の style が canonical であるならば真を返します。
[SEE_ALSO] Psych::Emitter#canonical=
canonical=(bool)-
出力の style が canonical である/ないを指定します。
- [PARAM] bool:
- canonnicalであるかどうか
[SEE_ALSO] Psych::Emitter#canonical
indentation -> Integer-
インデントのレベルを返します。
[SEE_ALSO] Psych::Emitter#indentation=
indentation=(level)-
インデントのレベルを指定します。
1 から 9 までの整数で指定します。
- [PARAM] level:
- インデントレベル
[SEE_ALSO] Psych::Emitter#indentation
line_width -> Integer-
「好ましい」行幅を返します。
[SEE_ALSO] Psych::Emitter#line_width=
line_width=(width)-
「好ましい」行幅を整数値で設定します。
- [PARAM] width:
- 好ましい行幅
[SEE_ALSO] Psych::Emitter#line_width