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/