diff options
| author | ksss <[email protected]> | 2017-06-14 17:07:32 +0900 |
|---|---|---|
| committer | ksss <[email protected]> | 2017-06-14 17:30:31 +0900 |
| commit | 19785f43d18891307dd18c1ed33b21099848ca72 (patch) | |
| tree | d9cb5c2623937cde108f6bd72edb85927590d55d /mrbgems/mruby-string-ext/mrblib | |
| parent | b979226871ab4a0f9977720d2a1fbf278d446cd3 (diff) | |
| download | mruby-19785f43d18891307dd18c1ed33b21099848ca72.tar.gz mruby-19785f43d18891307dd18c1ed33b21099848ca72.zip | |
Reimplement String#upto
Diffstat (limited to 'mrbgems/mruby-string-ext/mrblib')
| -rw-r--r-- | mrbgems/mruby-string-ext/mrblib/string.rb | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb index 15f0549f3..c3a7eb380 100644 --- a/mrbgems/mruby-string-ext/mrblib/string.rb +++ b/mrbgems/mruby-string-ext/mrblib/string.rb @@ -305,50 +305,6 @@ class String padding + self end - # str.upto(other_str, exclusive=false) {|s| block } -> str - # str.upto(other_str, exclusive=false) -> an_enumerator - # - # Iterates through successive values, starting at <i>str</i> and - # ending at <i>other_str</i> inclusive, passing each value in turn to - # the block. The <code>String#succ</code> method is used to generate - # each value. If optional second argument exclusive is omitted or is false, - # the last value will be included; otherwise it will be excluded. - # - # If no block is given, an enumerator is returned instead. - # - # "a8".upto("b6") {|s| print s, ' ' } - # for s in "a8".."b6" - # print s, ' ' - # end - # - # <em>produces:</em> - # - # a8 a9 b0 b1 b2 b3 b4 b5 b6 - # a8 a9 b0 b1 b2 b3 b4 b5 b6 - # - # If <i>str</i> and <i>other_str</i> contains only ascii numeric characters, - # both are recognized as decimal numbers. In addition, the width of - # string (e.g. leading zeros) is handled appropriately. - # - # "9".upto("11").to_a #=> ["9", "10", "11"] - # "25".upto("5").to_a #=> [] - # "07".upto("11").to_a #=> ["07", "08", "09", "10", "11"] - # - def upto(other_str, excl=false, &block) - return to_enum :upto, other_str, excl unless block - - str = self - n = self.<=>other_str - return self if n > 0 || (self == other_str && excl) - while true - block.call(str) - return self if !excl && str == other_str - str = str.succ - return self if excl && str == other_str - return self if str.size > other_str.size - end - end - def chars(&block) if block_given? self.split('').each do |i| |
