[ruby-core:93193] [Ruby trunk Feature#15588] String#each_chunk and #chunks
From:
samuel@...
Date:
2019-06-17 04:13:39 UTC
List:
ruby-core #93193
Issue #15588 has been updated by ioquatix (Samuel Williams).
I wonder if we should have consistency with `slice` and `each_slice` from `Array`. But honestly, I don't care, just if it's available.
----------------------------------------
Feature #15588: String#each_chunk and #chunks
https://bugs.ruby-lang.org/issues/15588#change-78637
* Author: Glass_saga (Masaki Matsushita)
* Status: Open
* Priority: Normal
* Assignee:
* Target version: 2.7
----------------------------------------
String#each_chunk iterates chunks of specified size in String.
String#chunks is a shorthand for str.each_chunk(n).to_a.
present:
```ruby
str = <<EOS
20190101 20190102
20190103 20190104
EOS
str.scan(/.{1,9}/m) do |chunk|
p chunk #=> "20190101 "
end
str.scan(/.{1,9}/m) do |chunk|
chunk.strip!
p chunk #=> "20190101"
end
str.scan(/.{1,9}/m) #=> ["20190101 ", "20190102\n", "20190103 ", "20190104\n"]
str.scan(/.{1,9}/m).map(&:strip) #=> ["20190101", "20190102", "20190103", "20190104"]
```
proposal:
```ruby
str = <<EOS
20190101 20190102
20190103 20190104
EOS
str.each_chunk(9) do |chunk|
p chunk #=> "20190101 "
end
str.each_chunk(9, strip: true) do |chunk|
p chunk #=> "20190101"
end
str.chunks(9) #=> ["20190101 ", "20190102\n", "20190103 ", "20190104\n"]
str.chunks(9, strip: true) #=> ["20190101", "20190102", "20190103", "20190104"]
```
---Files--------------------------------
patch.diff (6.56 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>