diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-02-07 23:52:08 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-02-08 09:35:28 +0900 |
| commit | 2650999092cac630e5bacb0a12c96bc642e939e6 (patch) | |
| tree | 45dcb935e829a23c8573abbd678308c9b967a24e /mrbgems/mruby-enumerator/mrblib/enumerator.rb | |
| parent | 687a4d961f74d45afd8db715e5eaafba96457441 (diff) | |
| download | mruby-2650999092cac630e5bacb0a12c96bc642e939e6.tar.gz mruby-2650999092cac630e5bacb0a12c96bc642e939e6.zip | |
Fix `Enumerator#(initialize|inspect)` for `nil`/`false`
Diffstat (limited to 'mrbgems/mruby-enumerator/mrblib/enumerator.rb')
| -rw-r--r-- | mrbgems/mruby-enumerator/mrblib/enumerator.rb | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/mrbgems/mruby-enumerator/mrblib/enumerator.rb index cbf53974a..143f2b74f 100644 --- a/mrbgems/mruby-enumerator/mrblib/enumerator.rb +++ b/mrbgems/mruby-enumerator/mrblib/enumerator.rb @@ -109,11 +109,11 @@ class Enumerator # # p fib.take(10) # => [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] # - def initialize(obj=nil, meth=:each, *args, &block) + def initialize(obj=NONE, meth=:each, *args, &block) if block obj = Generator.new(&block) - else - raise ArgumentError unless obj + elsif obj == NONE + raise ArgumentError, "wrong number of arguments (given 0, expected 1+)" end if @obj and !self.respond_to?(meth) raise NoMethodError, "undefined method #{meth}" @@ -221,13 +221,11 @@ class Enumerator end def inspect - return "#<#{self.class}: uninitialized>" unless @obj - if @args && @args.size > 0 args = @args.join(", ") - "#<#{self.class}: #{@obj}:#{@meth}(#{args})>" + "#<#{self.class}: #{@obj.inspect}:#{@meth}(#{args})>" else - "#<#{self.class}: #{@obj}:#{@meth}>" + "#<#{self.class}: #{@obj.inspect}:#{@meth}>" end end |
