Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > yaml/streamライブラリ > YAML::Streamクラス > emit

instance method YAML::Stream#emit

emit(io = nil) -> IO | String[permalink][rdoc]

ストリームに含まれる各ドキュメントを引数 io に YAML 形式で書き込みます。 io が nil の場合は文字列を返します。

[PARAM] io:
書き込み先の IO オブジェクト
require 'yaml'

class Dog
  attr_accessor :name
  def initialize(name)
    @name = name
  end
end

ys = YAML::Stream.new
ys.add(Dog.new("pochi"))
ys.edit(1, { :age => 17, :color => "white"})
ys.edit(2, [ "Chiba", "Saitama"])
ys.emit.split(/\n/).each {|l|
  puts l
}

#結果
--- !ruby/object:Dog
name: pochi
---
:age: 17
:color: white
---
- Chiba
- Saitama