Bug #1741 [ruby-core:24196]
Enumerable#join with Nested Enumerables
| Status : | Closed | Start : | 07/08/2009 | |
| Priority : | Normal | Due date : | ||
| Assigned to : | - | % Done : | 100% |
|
| Category : | core | |||
| Target version : | - | |||
| ruby -v : | ruby 1.9.2dev (2009-07-08 trunk 23987) [i686-linux] |
Description
Enumerable#join acts oddly for nested Enumerables. Should the output not be the same for both Array and E?
$ cat /tmp/join.rb
class E
include Enumerable
def initialize(*args)
@e = args
end
def each
@e.each {|e| yield e}
end
end
p [1,[2,[3,4]]].join(':')
p E.new(1, E.new(2, E.new(3, 4))).join(':')
$ ruby -vw /tmp/join.rb
ruby 1.9.2dev (2009-07-08 trunk 23987) [i686-linux]
"1:2:3:4"
"1:#<E:0x957f298>"
Associated revisions
- array.c (recursive_join): use obj to tell if recursion occurs.
[ruby-core:24150] - enum.c (enum_join): reverted r23966.
[ruby-core:24196]