Bugs item #9053, was opened at 2007-03-05 07:49
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9053&group_id=426

>Category: DB / File Formats
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Rick DeNatale (rdenatale)
Assigned to: Nobody (None)
Summary: YAML.load(file) cannot be used to load documents in sequence.

Initial Comment:
YAML.load(file) should load the next document in a file containing yaml, and leave the file positioned so that the next document can be loaded.  

This does not appear to be the case. For this ruby program
rick@frodo:/public/rubyscripts$ cat multiyaml.rb
require 'yaml'

File.open('testyaml','w') do |f|
  YAML.dump("string1", f)
  YAML.dump("string2", f)
end

File.open("testyaml") do |f|
  p YAML.load(f)
  p YAML.load(f)
end

File.open("testyaml") do |f|
  YAML.each_document(f) {|obj| p obj}
end

I get the following results:
rick@frodo:/public/rubyscripts$ ruby1.8.6 -v
ruby 1.8.6 (2007-03-05 patchlevel 5000) [i686-linux]
rick@frodo:/public/rubyscripts$ ruby1.8.6 multiyaml.rb
"string1"
false
"string1"
"string2"

Note that YAML.each_document(f) properly processes the two yaml documents. The issue is that it should be possible to load them one at a time in sequence.

The same results obtain from 1.8.4 and 1.9
rick@frodo:/public/rubyscripts$ ruby1.8 -v
ruby 1.8.4 (2005-12-24) [i486-linux]
rick@frodo:/public/rubyscripts$ ruby1.9 -v
ruby 1.9.0 (2007-03-01 patchlevel 0) [i686-linux]




----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9053&group_id=426