From: noreply@... Date: 2007-03-06T00:49:17+09:00 Subject: [ ruby-Bugs-9053 ] YAML.load(file) cannot be used to load documents in sequence. Bugs item #9053, was opened at 2007-03-05 10:49 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=9053&group_id=426 Category: Standard Library 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