医薬品マスターをYAMLファイル化するRubyスクリプト

こんにちは!kossyです!




さて、今回は
診療報酬情報提供サービス
で提供されている医薬品マスターCSVYAMLファイル化するRubyスクリプトを書いてみたので、
ブログに残してみたいと思います。



環境
Ruby 2.6.3



コード全晒し

通常YAMLファイルを書き出す場合、YAML.dumpメソッドを用いるのですが、

iy_masters:
  - ["0", "0", "1234567", ...]
  - ["0", "0", "1234568", ...]


上記のように配列で1行ずつ定義することがどうしてもできず、
File.openで強引にやりたかったことを実現しています。

File.open('./tmp/iy_masters.yml', 'w') do |file|
  file.write 'iy_masters:' + "\n"
  CSV.read('./y.csv', encoding: 'Shift_JIS:UTF-8').each do |row| # マスターCSVがcurrentディレクトリにあることを想定
    file.write '  - '
    file.write row
    file.write "\n"
  end
end

このスクリプトを使えば他のマスターファイルにも応用できるかと思います。

出来上がったYAMLファイルはこちら
https://drive.google.com/file/d/1ITPOWA43kBepbIv0bV8WJQ6cVXfj1c2A/view