повторить CSV.generate_line поведение ruby ​​1.8.7 в ruby ​​1.9.2 - PullRequest
3 голосов
/ 17 марта 2011

ruby ​​1.9 теперь использует более быстрый ccsv, но как мне воспроизвести поведение generate_line для ruby ​​1.8.7?

ruby-1.8.7-p334 :010 > require 'csv'
 => true
ruby-1.8.7-p334 :010 > CSV.generate_line(["ab","cd"], "\t")
 => "ab\tcd"

ruby-1.9.2-p180 :002 > require 'csv'
 => true
ruby-1.9.2-p180 :007 > CSV.generate_line(["ab","cd"], :row_sep => ?\t)
 => "ab,cd\t"

Обратите внимание, как \t находится между двумя элементами массива в ruby ​​1.8.7 и наконец в 1.9.2

Ответы [ 2 ]

3 голосов
/ 17 марта 2011

Вместо этого вы должны использовать col_sep.row_sep - это разделитель строк:

CSV.generate_line(["ab","cd"], :col_sep => ?\t)
=> "ab\tcd\n"

или

CSV.generate_line(["ab","cd"], :col_sep => ?\t, :row_sep => '')
=> "ab\tcd"

Более подробную информацию и дополнительные параметры можно найти в документации .

1 голос
/ 17 марта 2011

CSV.generate_line ([ 'а', 'б', 'с'] ,: col_sep => "\ т")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...