diff options
| -rw-r--r-- | mrbgems/mruby-enumerator/mrblib/enumerator.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/mrbgems/mruby-enumerator/mrblib/enumerator.rb index 17a650d6c..1494c02c5 100644 --- a/mrbgems/mruby-enumerator/mrblib/enumerator.rb +++ b/mrbgems/mruby-enumerator/mrblib/enumerator.rb @@ -607,3 +607,28 @@ module Kernel end alias :enum_for :to_enum end + +module Enumerable + # use Enumerator to use inifite sequence + def zip(*arg) + ary = [] + arg = arg.map{|a|a.each} + i = 0 + self.each do |*val| + a = [] + a.push(val.__svalue) + idx = 0 + while idx < arg.size + begin + a.push(arg[idx].next) + rescue StopIteration + a.push(nil) + end + idx += 1 + end + ary.push(a) + i += 1 + end + ary + end +end |
