summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-24 23:44:23 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-24 23:44:23 +0900
commitaa5920aaaeaf8a59aacb4f0bcba4f11fb2341ce0 (patch)
treeb156115725f31352fa822fdac50281ba97933c56 /mrbgems/mruby-enum-ext
parentc326ab877e8e9d04b672d14b37c7d5fa96d04e7b (diff)
downloadmruby-aa5920aaaeaf8a59aacb4f0bcba4f11fb2341ce0.tar.gz
mruby-aa5920aaaeaf8a59aacb4f0bcba4f11fb2341ce0.zip
Enumerable#reverse_each should not rely on mruby-array-ext gem
Diffstat (limited to 'mrbgems/mruby-enum-ext')
-rw-r--r--mrbgems/mruby-enum-ext/mrblib/enum.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb
index 0ce1d7605..127b5dc8c 100644
--- a/mrbgems/mruby-enum-ext/mrblib/enum.rb
+++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb
@@ -518,9 +518,12 @@ module Enumerable
#
def reverse_each(&block)
- ary = []
- self.each {|*val| ary.push(val.__svalue) }
- ary.reverse_each(&block)
+ ary = self.to_a
+ i = ary.size - 1
+ while i>=0
+ block.call(ary[i])
+ i -= 1
+ end
self
end
end