1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/yaml/stream.rb
tenderlove f82b8e76e8 * lib/yaml/basenode.rb: deprecating YPath methods
* lib/yaml/stream.rb: deprecating YAML::Stream#edit
* test/yaml/test_yaml.rb: requiring yaml/ypath for tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-26 03:42:21 +00:00

41 lines
768 B
Ruby

module YAML
#
# YAML::Stream -- for emitting many documents
#
class Stream
attr_accessor :documents, :options
def initialize( opts = {} )
@options = opts
@documents = []
end
def []( i )
@documents[ i ]
end
def add( doc )
@documents << doc
end
def edit( doc_num, doc )
warn "#{caller[0]}: edit is deprecated" if $VERBOSE
@documents[ doc_num ] = doc
end
def emit( io = nil )
# opts = @options.dup
# opts[:UseHeader] = true if @documents.length > 1
out = YAML.emitter
out.reset( io || io2 = StringIO.new )
@documents.each { |v|
v.to_yaml( out )
}
io || ( io2.rewind; io2.read )
end
end
end