Thomas Sawyer wrote:
> Ruby 1.8.7 p72
> 
>   >> "A\nB\nC".lines.to_a
>   => ["A\n", "B\n", "C"]
> 
> Please, tell me that's a mishap, and not how 1.9 works. I'd expect:
> 
>   >> "A\nB\nC".lines.to_a
>   => ["A", "B", "C"]

Why would you expect that? The documentation is very clear.

--------------------------------------------------------------- IO#lines
     ios.lines(sep=$/)     => anEnumerator
     ios.lines(limit)      => anEnumerator
     ios.lines(sep, limit) => anEnumerator
------------------------------------------------------------------------
     Returns an enumerator that gives each line in _ios_. The stream
     must be opened for reading or an +IOError+ will be raised.

        f = File.new("testfile")
        f.lines.to_a  #=> ["foo\n", "bar\n"]
        f.rewind
        f.lines.sort  #=> ["bar\n", "foo\n"]

If it changed in 1.9, that would be another source of incompatibilities.

Perhaps most importantly of all, if the newlines were stripped, there 
would be loss of data and it would be impossible to reconstruct the 
original file exactly from the members of the lines array (e.g. 
lines.join), as your example shows nicely.

-- 
Posted via http://www.ruby-forum.com/.