.each should be writing each element on a different line? no
Нет, неважно, перебираете ли вы что-либо. Важно то, как вы пишете в файл.
В настоящее время вы используете IO # write , которая ничего не говорит о добавлении новых строк. Если вы измените new_text.write
на new_text.puts
( IO # устанавливает ), вы будете писать новую строку после каждого элемента в вашем массиве.
Вы можете легко увидеть это, используя $stdout
напрямую:
> a = %w(foo bar)
=> ["foo", "bar"]
> a.each(&$stdout.method(:write)) # write -- no newlines
foobar => ["foo", "bar"]
> a.each(&$stdout.method(:puts)) # puts -- newlines
foo
bar
=> ["foo", "bar"]