[ruby-core:88606] [Ruby trunk Bug#15001] Peek causes cursor to advance when enumerating the lines of a file

From: hanmac@...
Date: 2018-08-22 10:13:51 UTC
List: ruby-core #88606
Issue #15001 has been updated by Hanmac (Hans Mackowiak).


i think the problem is that String Enumerations are rewindable while on the IO/File it is not

----------------------------------------
Bug #15001: Peek causes cursor to advance when enumerating the lines of a file
https://bugs.ruby-lang.org/issues/15001#change-73662

* Author: fletchto99 (Matthew Langlois)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
When a call to peek is made on the enumerator for the lines of a file the cursor advances.

File:
~~~ text
1
2
3
~~~



Sample script:
~~~ ruby
e = File.open("f").each_line
e.peek
p e.each.to_a
~~~

The output is => ["2\n", "3\n"]
The expected output is  => ["1\n", "2\n", "3\n"]

When performing the same operation on a string we get the expected output.

~~~ ruby
e = "1\n2\n3\n".each_line
e.peek
p e.each.to_a
~~~

The output is:  => ["1\n", "2\n", "3\n"]




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next