Bug #14257
closed
the chomp option removes newlines in additon to the provided separator for String#each_line and String#lines
Added by AaronLasseigne (Aaron Lasseigne) almost 7 years ago.
Updated almost 7 years ago.
Description
I'm not entirely sure this is a bug but I had a hard time finding anything that indicated that the change was on purpose.
The chomp
option would remove the provided separator from each line. Now it does that and it also removes newlines.
2.4
> "a b c d\n".lines(' ', chomp: true)
=> ["a", "b", "c", "d\n"]
2.5
> "a b c d\n".lines(' ', chomp: true)
=> ["a", "b", "c", "d"]
I wanted to have a look but to my surprise, the documentation at:
https://ruby-doc.org/core-2.5.0/String.html#method-i-lines
does not seem to indicate more than one agument to this method?
Either way, could someone perhaps add a few examples to this
method, on the documentation, perhaps also including the
lines(' ', chomp: true) variant? Because as it presently is,
I can't seem to find the chomp: true part. Perhaps it was added
only somewhat recently.
- Status changed from Open to Closed
Applied in changeset trunk|r61513.
string.c: chomp rs at the end
- string.c (rb_str_enumerate_lines): should chomp record separator
only, but not a newline, at the end of the receiver as well as
middle, if the separator is given.
[ruby-core:84552] [Bug #14257]
- Backport changed from 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED
- Backport changed from 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: DONE
ruby_2_5 r61628 merged revision(s) 61513.
- Backport changed from 2.3: DONTNEED, 2.4: DONTNEED, 2.5: DONE to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED
Sorry, r61636 is needed too.
Huge RS with chomp
option could cause a SEGV.
- Backport changed from 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED to 2.3: DONTNEED, 2.4: DONTNEED, 2.5: DONE
ruby_2_5 r62421 merged revision(s) 61636.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0