summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-11-30 12:48:28 +0900
committerGitHub <[email protected]>2016-11-30 12:48:28 +0900
commit3cf66a82187f8a34eaaddb0697803916ab6b5f24 (patch)
tree64c52b4a4f1d02b9d73a3e87a5ee7851ca2abdb2 /mrbgems/mruby-enum-lazy/mrblib/lazy.rb
parent2bb47addadb3eda796520837c21d694c8d6e3320 (diff)
parent8675975ba212be389624ed165c287e9988e916db (diff)
downloadmruby-3cf66a82187f8a34eaaddb0697803916ab6b5f24.tar.gz
mruby-3cf66a82187f8a34eaaddb0697803916ab6b5f24.zip
Merge pull request #3305 from ksss/lazy-to_enum
Implement Enumerable::Lazy#to_enum and enum_for
Diffstat (limited to 'mrbgems/mruby-enum-lazy/mrblib/lazy.rb')
-rw-r--r--mrbgems/mruby-enum-lazy/mrblib/lazy.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
index 8ce363c6d..c9c3cc5fd 100644
--- a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
+++ b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
@@ -40,6 +40,15 @@ module Enumerable
}
end
+ def to_enum(meth=:each, *args, &block)
+ lz = Lazy.new(self, &block)
+ lz.obj = self
+ lz.meth = meth
+ lz.args = args
+ lz
+ end
+ alias enum_for to_enum
+
def map(&block)
Lazy.new(self){|yielder, val|
yielder << block.call(val)