From: manga.osyo@...
Date: 2019-07-29T11:56:16+00:00
Subject: [ruby-core:93998] [Ruby master Feature#15588] String#each_chunk and #chunks
Issue #15588 has been updated by osyo (manga osyo).
I also wanted something like `# each_slice`.
For example, use it when you want to fix the width of the output.
```ruby
puts "abcdefghijklmnopqrstuvwxyz".each_slice(5).map { |s| "#{s}
" }
# output:
# abcde
# fghij
# klmno
# pqrst
# uvwxy
# z
```
>> Is size in characters or bytes?
> Considering consistency with #slice, it is better to have size as characters.
I think that there may be multiple `String#each_slice_xxx` like` String#each_xxx`.
(e.g. Defined `String#each_slice_byte` , `String#each_slice_char` and more...
Also, I think that `String#each_slice` may be equivalent to`String#each_slice_char`.
----------------------------------------
Feature #15588: String#each_chunk and #chunks
https://bugs.ruby-lang.org/issues/15588#change-80193
* 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 = < "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 = < "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: