From: mame@... Date: 2019-02-06T12:39:39+00:00 Subject: [ruby-core:91425] [Ruby trunk Feature#15588] String#each_chunk and #chunks Issue #15588 has been updated by mame (Yusuke Endoh). I like the proposal itself. I don't think that `chunks` is a good name, though. To take every n characters, I often write `str.scan(/.{1,#{ n }}/m)`, but it looks a bit cryptic. In this case `str.chunks(n)` is simpler. I dislike `strip: true`. It is too ad-hoc. Does it also support `lstrip: true`, `rstrip: true`, `chop: true`, `chomp: true`, etc? In principle, one method should do one thing, IMO. ---------------------------------------- Feature #15588: String#each_chunk and #chunks https://bugs.ruby-lang.org/issues/15588#change-76684 * 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: