Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > psychライブラリ > 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(io) -> Psych::Emitter[permalink][rdoc]Emitter オブジェクトを生成して返します。
canonical -> bool[permalink][rdoc]出力の style が canonical であるならば真を返します。
[SEE_ALSO] Psych::Emitter#canonical=
canonical=(bool)[permalink][rdoc]出力の style が canonical である/ないを指定します。
[SEE_ALSO] Psych::Emitter#canonical
indentation -> Integer[permalink][rdoc]インデントのレベルを返します。
[SEE_ALSO] Psych::Emitter#indentation=
indentation=(level)[permalink][rdoc]インデントのレベルを指定します。
1 から 9 までの整数で指定します。
[SEE_ALSO] Psych::Emitter#indentation
line_width -> Integer[permalink][rdoc]「好ましい」行幅を返します。
[SEE_ALSO] Psych::Emitter#line_width=
line_width=(width)[permalink][rdoc]「好ましい」行幅を整数値で設定します。
[SEE_ALSO] Psych::Emitter#line_width