From: "Eregon (Benoit Daloze)" Date: 2012-11-27T03:49:49+09:00 Subject: [ruby-core:50176] [ruby-trunk - Bug #7440] IO#lines etc. should return Array Issue #7440 has been updated by Eregon (Benoit Daloze). drbrain (Eric Hodel) wrote: > With the exception of StringIO hey also support infinite streams. I think the current Enumerator is best. Strongly agreed. It could also increase a lot the memory usage (while on String we anyway already have the whole String in memory so it is less of a concern). File.open('/usr/share/dict/words').lines.each_with_object(Hash.new(0)) { |word, count| count[word[0].downcase] += 1 } ---------------------------------------- Bug #7440: IO#lines etc. should return Array https://bugs.ruby-lang.org/issues/7440#change-33975 Author: yhara (Yutaka HARA) Status: Open Priority: Normal Assignee: yhara (Yutaka HARA) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-11-26 trunk 36708) [x86_64-darwin12.2.1] String#bytes, #chars, #codepints and #lines are changed to return Array in #6670. For consistent behavior, following methods should return Array too: * ARGF.lines, chars, bytes, codepoints * IO#lines, chars, bytes, codepoints * StringIO#lines, chars, bytes, codepoints * Zlib::GzipReader#lines, bytes Please let me know if there are more. -- http://bugs.ruby-lang.org/