[#42344] [ruby-trunk - Feature #5964][Open] Make Symbols an Alternate Syntax for Strings — Tom Wardrop <tom@...>

23 messages 2012/02/03

[#42443] [ruby-trunk - Bug #5985][Open] miniruby skews "make benchmark" results — Eric Wong <normalperson@...>

21 messages 2012/02/08

[#42444] [ruby-trunk - Bug #5986][Open] Segmentation Fault — Luis Matta <levmatta@...>

16 messages 2012/02/08

[#42471] [ruby-trunk - Feature #5995][Open] calling io_advise_internal() in read_all() — Masaki Matsushita <glass.saga@...>

20 messages 2012/02/10

[#42560] [ruby-trunk - Bug #6011][Open] ruby-1.9.3-p0/lib/webrick/utils.rb:184: [BUG] Segmentation fault — Vit Ondruch <v.ondruch@...>

12 messages 2012/02/13

[#42579] [ruby-trunk - Bug #6012][Open] Proc#source_location also return the column — Roger Pack <rogerpack2005@...>

14 messages 2012/02/14

[#42685] [ruby-trunk - Bug #6036][Open] Test failures in Fedora Rawhide/17 — Bohuslav Kabrda <bkabrda@...>

14 messages 2012/02/16

[#42697] [ruby-trunk - Bug #6040][Open] Transcoding test failure: Big5 to UTF8 not defined (MinGW) — Luis Lavena <luislavena@...>

10 messages 2012/02/16

[#42813] [ruby-trunk - Feature #6065][Open] Allow Bignum marshalling/unmarshalling from C API — Martin Bosslet <Martin.Bosslet@...>

22 messages 2012/02/23

[#42815] [ruby-trunk - Bug #6066][Open] Fix "control may reach end of non-void function" warnings for clang — Eric Hodel <drbrain@...7.net>

15 messages 2012/02/23

[#42857] [ruby-trunk - Feature #6074][Open] Allow alias arguments to have a comma — Thomas Sawyer <transfire@...>

20 messages 2012/02/24

[#42891] [ruby-trunk - Feature #6083][Open] Hide a Bignum definition — Koichi Sasada <redmine@...>

23 messages 2012/02/25

[#42906] [ruby-trunk - Bug #6085][Open] Treatment of Wrong Number of Arguments — Marc-Andre Lafortune <ruby-core@...>

14 messages 2012/02/25

[#42949] [ruby-trunk - Bug #6089][Open] Test suite fails with OpenSSL 1.0.1 — Vit Ondruch <v.ondruch@...>

13 messages 2012/02/26

[ruby-core:42441] Re: [ruby-trunk - Bug #5978][Open] YAML.load_stream should process documents as they are read

From: Aaron Patterson <tenderlove@...>
Date: 2012-02-08 17:11:11 UTC
List: ruby-core #42441
On Wed, Feb 08, 2012 at 01:47:31AM +0900, Thomas Sawyer wrote:
>=20
> Issue #5978 has been reported by Thomas Sawyer.
>=20
> ----------------------------------------
> Bug #5978: YAML.load_stream should process documents as they are read
> https://bugs.ruby-lang.org/issues/5978
>=20
> Author: Thomas Sawyer
> Status: Open
> Priority: Normal
> Assignee:=20
> Category:=20
> Target version: 2.0.0
> ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
>=20
>=20
> Psych say YAML.load_documents is deprecated and say to use `YAML.load_str=
eam` instead.
>=20
> Looking at the implementation for `load_stream()`, looks to me as if it w=
aits for all documents in the stream to load before anything can be done wi=
th it.
>=20
>     # File 'lib/psych.rb', line 221
>=20
>     def self.load_stream yaml
>       parse_stream(yaml).children.map { |child| child.to_ruby }
>     end
>=20
> 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.
>=20
> I imagine an Enumerator might be applicable to this as well.

I'd rather not change `load_stream`, but I want this functionality as
well.  What about something like this:

  YAML::Reader.new(io).each do |doc|
    ...
  end

Deserialized documents will be yielded as read.  Does that seem
acceptable?  I'm hesitant to make it enumerable though because if we're
truly doing stream processing, you couldn't iterate on the same object
twice (imagine reading YAML from a socket or something).

--=20
Aaron Patterson
http://tenderlovemaking.com/

In This Thread