From 0f774ff4dfc168aa90764b0130d60f14b837cc53 Mon Sep 17 00:00:00 2001 From: ksss Date: Thu, 1 Dec 2016 15:29:43 +0900 Subject: Support nil argument as no argument --- mrbgems/mruby-enumerator/mrblib/enumerator.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/mrbgems/mruby-enumerator/mrblib/enumerator.rb index 1515a7a89..694ad4270 100644 --- a/mrbgems/mruby-enumerator/mrblib/enumerator.rb +++ b/mrbgems/mruby-enumerator/mrblib/enumerator.rb @@ -153,9 +153,15 @@ class Enumerator # def with_index(offset=0) return to_enum :with_index, offset unless block_given? - raise TypeError, "no implicit conversion of #{offset.class} into Integer" unless offset.respond_to?(:to_int) + offset = if offset.nil? + 0 + elsif offset.respond_to?(:to_int) + offset.to_int + else + raise TypeError, "no implicit conversion of #{offset.class} into Integer" + end - n = offset.to_int - 1 + n = offset - 1 enumerator_block_call do |i| n += 1 yield [i,n] -- cgit v1.2.3