From: merch-redmine@... Date: 2020-11-24T23:13:47+00:00 Subject: [ruby-core:101060] [Ruby master Bug#17216] Enumerator::Chain doesn't support all Enumerator methods Issue #17216 has been updated by jeremyevans0 (Jeremy Evans). I agree that calling the methods directly should work. I've submitted a pull request to internally wrap the Enumerator::Chain in an Enumerator so it doesn't raise TypeError: https://github.com/ruby/ruby/pull/3811 ---------------------------------------- Bug #17216: Enumerator::Chain doesn't support all Enumerator methods https://bugs.ruby-lang.org/issues/17216#change-88733 * Author: jeremie (J�r�mie Laval) * Status: Open * Priority: Normal * ruby -v: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- Despite the fact that `Enumerator::Chain` (returned by `Enumerator#chain`) is supposed to inherit from `Enumerator`, a lot of `Enumerator` methods do not work on a chain instance throwing the following error: ``` TypeError (wrong argument type chain (expected enumerator)) ``` The following code exhibit the problem: ```ruby [1, 2, 3].chain([4, 5, 6]).with_index.to_a ``` A workaround is to use `each` (also work with `map`, `to_enum`, and others) to force a conversion back to a plain enumerator which seems superfluous: ```ruby [1, 2, 3].chain([4, 5, 6]).each.with_index.to_a ``` -- https://bugs.ruby-lang.org/ Unsubscribe: