diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-04-27 12:50:02 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-04-27 12:50:02 +0900 |
| commit | 270131253f62d806ea480ef4793e0b39cd068ee4 (patch) | |
| tree | 5f3d456ccc0379bf59f720957364846c99f47011 /mrbgems/mruby-string-ext | |
| parent | 2b0135e869742444aed2f2448c99956ee66c1594 (diff) | |
| download | mruby-270131253f62d806ea480ef4793e0b39cd068ee4.tar.gz mruby-270131253f62d806ea480ef4793e0b39cd068ee4.zip | |
Remove duplicated `String#each_char`
Diffstat (limited to 'mrbgems/mruby-string-ext')
| -rw-r--r-- | mrbgems/mruby-string-ext/mrblib/string.rb | 10 | ||||
| -rw-r--r-- | mrbgems/mruby-string-ext/test/string.rb | 12 |
2 files changed, 13 insertions, 9 deletions
diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb index 311803ea2..fdaf2f960 100644 --- a/mrbgems/mruby-string-ext/mrblib/string.rb +++ b/mrbgems/mruby-string-ext/mrblib/string.rb @@ -310,11 +310,15 @@ class String end end + ## + # Call the given block for each character of + # +self+. def each_char(&block) return to_enum :each_char unless block - - split('').each do |i| - block.call(i) + pos = 0 + while pos < self.size + block.call(self[pos]) + pos += 1 end self end diff --git a/mrbgems/mruby-string-ext/test/string.rb b/mrbgems/mruby-string-ext/test/string.rb index 44ca1fde2..02777e594 100644 --- a/mrbgems/mruby-string-ext/test/string.rb +++ b/mrbgems/mruby-string-ext/test/string.rb @@ -657,19 +657,19 @@ assert('String#chars(UTF-8)') do end if UTF8STRING assert('String#each_char') do - s = "" + chars = [] "hello!".each_char do |x| - s += x + chars << x end - assert_equal "hello!", s + assert_equal ["h", "e", "l", "l", "o", "!"], chars end assert('String#each_char(UTF-8)') do - s = "" + chars = [] "こんにちは世界!".each_char do |x| - s += x + chars << x end - assert_equal "こんにちは世界!", s + assert_equal ["こ", "ん", "に", "ち", "は", "世", "界", "!"], chars end if UTF8STRING assert('String#codepoints') do |
