По определению, x ++, возвращает значение x и затем увеличивает x.
http://blogs.msdn.com/lucabol/archive/2004/08/31/223580.aspx
Да, но если вы распечатываете эту строку, в ней будут новые строки:
irb(main):001:0> a = (1..4).to_a
=> [1, 2, 3, 4]
irb(main):002:0> a.join("\n")
=> "1\n2\n3\n4"
irb(main):003:0> puts a.join("\n")
1
2
3
4
Итак, похоже, что вы достигли желаемого (?)