Bug #1741

Enumerable#join with Nested Enumerables

Added by Run Paint Run Run over 2 years ago. Updated 9 months ago.

[ruby-core:24196]
Status:Closed Start date:07/08/2009
Priority:Normal Due date:
Assignee:- % 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

Revision 24017
Added by Nobuyoshi Nakada over 2 years ago

* array.c (recursive_join): use obj to tell if recursion occurs. [ruby-core:24150] * enum.c (enum_join): reverted r23966. [ruby-core:24196]

History

Updated by Nobuyoshi Nakada over 2 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100
Applied in changeset r24017.

Also available in: Atom PDF