diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-02-08 23:28:38 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-02-08 23:28:38 +0900 |
| commit | fc883de45891e02a24bdb0df44de744829f267e7 (patch) | |
| tree | a53fb07613a0377ab0f4ee80799ff2df49745a10 | |
| parent | 3d73a29783d3be6d92c9c7a9f5014dcb8de19ddd (diff) | |
| parent | 19740d45a1dc51627076f19578fe837c63de7c25 (diff) | |
| download | mruby-fc883de45891e02a24bdb0df44de744829f267e7.tar.gz mruby-fc883de45891e02a24bdb0df44de744829f267e7.zip | |
Merge pull request #4266 from shuujii/add-no_method_error-tests-to-enumerator
Add `NoMethodError` tests to `mruby-enumerator`
| -rw-r--r-- | mrbgems/mruby-enumerator/mrblib/enumerator.rb | 9 | ||||
| -rw-r--r-- | mrbgems/mruby-enumerator/test/enumerator.rb | 7 |
2 files changed, 7 insertions, 9 deletions
diff --git a/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/mrbgems/mruby-enumerator/mrblib/enumerator.rb index cecc424e6..457687268 100644 --- a/mrbgems/mruby-enumerator/mrblib/enumerator.rb +++ b/mrbgems/mruby-enumerator/mrblib/enumerator.rb @@ -118,13 +118,8 @@ class Enumerator def initialize(obj=NONE, meth=:each, *args, &block) if block obj = Generator.new(&block) - else - if obj == NONE - raise ArgumentError, "wrong number of arguments (given 0, expected 1+)" - end - if @obj && !self.respond_to?(meth) - raise NoMethodError, "undefined method #{meth}" - end + elsif obj == NONE + raise ArgumentError, "wrong number of arguments (given 0, expected 1+)" end @obj = obj diff --git a/mrbgems/mruby-enumerator/test/enumerator.rb b/mrbgems/mruby-enumerator/test/enumerator.rb index 57f971fba..d609cadb5 100644 --- a/mrbgems/mruby-enumerator/test/enumerator.rb +++ b/mrbgems/mruby-enumerator/test/enumerator.rb @@ -6,11 +6,11 @@ class << @obj end end -assert 'Enumerator' do +assert 'Enumerator.class' do assert_equal Class, Enumerator.class end -assert 'Enumerator' do +assert 'Enumerator.superclass' do assert_equal Object, Enumerator.superclass end @@ -418,7 +418,10 @@ assert 'nested iteration' do end assert 'Kernel#to_enum' do + e = nil assert_equal Enumerator, [].to_enum.class + assert_nothing_raised { e = [].to_enum(:_not_implemented_) } + assert_raise(NoMethodError) { e.first } end assert 'modifying existing methods' do |
