diff options
| author | ksss <[email protected]> | 2014-03-15 00:03:53 +0900 |
|---|---|---|
| committer | ksss <[email protected]> | 2014-03-15 08:15:16 +0900 |
| commit | 6b3cc0052d93983cd7cb9ee48a3c4c140046fc2a (patch) | |
| tree | 24443202e4504aa2f8dc0bfadd2cb48f45125ddf /mrbgems/mruby-enumerator/test | |
| parent | 47fc784b567d58c48ad1f018e3b56926acd76725 (diff) | |
| download | mruby-6b3cc0052d93983cd7cb9ee48a3c4c140046fc2a.tar.gz mruby-6b3cc0052d93983cd7cb9ee48a3c4c140046fc2a.zip | |
fix self modifying bug
Diffstat (limited to 'mrbgems/mruby-enumerator/test')
| -rw-r--r-- | mrbgems/mruby-enumerator/test/enumerator.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mrbgems/mruby-enumerator/test/enumerator.rb b/mrbgems/mruby-enumerator/test/enumerator.rb index bbb22ee6d..2c85feef3 100644 --- a/mrbgems/mruby-enumerator/test/enumerator.rb +++ b/mrbgems/mruby-enumerator/test/enumerator.rb @@ -89,6 +89,27 @@ assert 'Enumerator#each' do assert_equal([1], ary) end +assert 'Enumerator#each arguments' do + obj = Object.new + + def obj.each_arg(a, b=:b, *rest) + yield a + yield b + yield rest + :method_returned + end + + enum = obj.to_enum :each_arg, :a, :x + + assert_equal [:a, :x, []], enum.each.to_a + assert_true enum.each.equal?(enum) + assert_equal :method_returned, enum.each { |elm| elm } + + assert_equal [:a, :x, [:y, :z]], enum.each(:y, :z).to_a + assert_false enum.each(:y, :z).equal?(enum) + assert_equal :method_returned, enum.each(:y, :z) { |elm| elm } +end + assert 'Enumerator#next' do e = 3.times 3.times { |i| |
