Issue #6159 has been updated by Eregon (Benoit Daloze).


Awesome, thanks!

Your answer raises another question: Would it not be more readable if #inspect was closer to the code?

    (1..10).lazy.select(&:odd?).map(&:to_s).cycle(2).inspect
Instead of
    "#<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:select>:map>:cycle(2)>"
Something like
    "#<Enumerator::Lazy: 1..10.select.map.cycle(2)>"
?
----------------------------------------
Bug #6159: Enumerable::Lazy#inspect
https://bugs.ruby-lang.org/issues/6159#change-25084

Author: Eregon (Benoit Daloze)
Status: Closed
Priority: Normal
Assignee: shugo (Shugo Maeda)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-03-15 trunk 35042) [x86_64-darwin10.8.0]


Hello,

Enumerable::Lazy#inspect is undefined right now and relies on Enumerator#inspect:

    (1..5).lazy # => #<Enumerator::Lazy: #<Enumerator::Generator:0x00000101a2f9e8>:each>

I think it would be nice to be similar to (direct) Enumerator#inspect:

    (1..5).each # => #<Enumerator: 1..5:each>

So something like: #<Enumerator::Lazy: 1..5:each> or #<Enumerator::Lazy: #<Enumerator: 1..5:each>>

It would also be nice to show the chaining, like Enumerator does:

    (1..5).select.map.flat_map # => #<Enumerator: #<Enumerator: #<Enumerator: 1..5:select>:map>:flat_map> 

What do you think?


-- 
http://bugs.ruby-lang.org/