summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-enum-lazy/mrblib/lazy.rb3
-rw-r--r--mrbgems/mruby-enumerator/mrblib/enumerator.rb3
2 files changed, 6 insertions, 0 deletions
diff --git a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
index 8a7ac7fdc..c98681edf 100644
--- a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
+++ b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
@@ -43,6 +43,9 @@ class Enumerator
end
def to_enum(meth=:each, *args, &block)
+ unless self.respond_to?(meth)
+ raise NoMethodError, "undefined method #{meth}"
+ end
lz = Lazy.new(self, &block)
lz.obj = self
lz.meth = meth
diff --git a/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/mrbgems/mruby-enumerator/mrblib/enumerator.rb
index c872ceedc..1e77af369 100644
--- a/mrbgems/mruby-enumerator/mrblib/enumerator.rb
+++ b/mrbgems/mruby-enumerator/mrblib/enumerator.rb
@@ -115,6 +115,9 @@ class Enumerator
else
raise ArgumentError unless obj
end
+ if @obj and !self.respond_to?(meth)
+ raise NoMethodError, "undefined method #{meth}"
+ end
@obj = obj
@meth = meth