memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

csvファイルからfixturesを作成するrubyプログラム

とりあえず自分用に作ったので公開。この手のプログラムは世の中に掃いて捨てるほど公開されていると思いますが、簡単なプログラムなので自分で作ってみました。エラー処理は全くしていませんが。。。もし良ければ使ってください。

#Usage: fixtures_generator_from_csv CsvFilename(ex: hoge.csv)
yml_cnt = 0 
column_name = []
open(ARGV[0]) do |source| 
  open(ARGV[0].split('.')[0]+'.yml','w') do |dest|
    while line = source.gets
      data = line.chomp.split(',')
      if yml_cnt == 0
        data.each {|e| column_name << e.chomp}
      else
        dest.write(yml_cnt.to_s + ":\n")
        data.each_index do |idx|
          dest.write('  ' + column_name[idx] + ': "' + data[idx] + "\"\n")
        end 
        dest.write("\n")
      end 
      yml_cnt += 1
    end 
  end 
end