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/