From: Aaron Patterson Date: 2012-03-07T07:48:12+09:00 Subject: [ruby-core:43100] [ruby-trunk - Bug #5978] YAML.load_stream should process documents as they are read Issue #5978 has been updated by Aaron Patterson. Assignee set to Aaron Patterson ---------------------------------------- Bug #5978: YAML.load_stream should process documents as they are read https://bugs.ruby-lang.org/issues/5978 Author: Thomas Sawyer Status: Open Priority: Normal Assignee: Aaron Patterson Category: Target version: 2.0.0 ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] Psych say YAML.load_documents is deprecated and say to use `YAML.load_stream` instead. Looking at the implementation for `load_stream()`, looks to me as if it waits for all documents in the stream to load before anything can be done with it. # File 'lib/psych.rb', line 221 def self.load_stream yaml parse_stream(yaml).children.map { |child| child.to_ruby } end I don't think this should be the case. Ideally `load_stream()` would take a block, and if an IO object is given, read a document, yield it and then read the next document, and so on. I imagine an Enumerator might be applicable to this as well. -- http://bugs.ruby-lang.org/