Open yumetodo opened 8 years ago
追加で、csvの自動チェックもするべきと #155 で分かった。
./ships.csv
[0-9]+,[^,]+,[0-9]+,[0-9]+/[0-9]+.[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+,[0-9],[0-9],[0-9]+/[0-9]+/[0-9]+/[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[-0-9]+/[-0-9]+/[-0-9]+/[-0-9]+/[-0-9]+,[0-9]
./ships_all.csv
7c3bcc6d04449d3fb79161b3f00249395ecd6ede でなんかやってたけど、なんでこれあるんだっけ? commit logは
・ships.csvを修正。具体的には、以前のships.csvをships_all.csvとして、nullを含む項目を排除したものを新しいships.csvとした ・それに合わせ、KCS_CUI内のships.csvとslotitems.csvを修正した
となっているけど
@YSRKEN
./slotitems.csv
[0-9]+,[^,]+,[^,]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+
./KCS_CUI/source/ships.csv
-> ./ships.csv
から自動生成させるべき
./KCS_CUI/source/slotitems.csv
->./slotitems.csv
から自動生成させるべき
あとこのチェックをどの言語でやるかという問題。正規表現とFileIOが使いやすいかつテストフレームワークがあってTravis-CIかShippableで実行できるスクリプト言語がいいと思う。Ruby+Rspecか?Node.js+YARNか?(rubyわからないです、どうなんでしょう? @YSRKEN )
7c3bcc6 の奴は、行に「null」が含まれるcsvを読ませるとエラーが出たらマズいと思い、「本来のデータ」であるships_all.csvと、「ソフトで使用するデータ」であるships.csvを分けたというわけです。 ただ、 b44aae5 辺りで、「ships.csvについては、一部分からない(nullな)部分を適当に補完しておこう」といった方針で再編集しただけのことです。 また、「CIで走らせる場合にどう書けばいいか」を存じませんので後半についてはなんとも
チェックするコードはとりあえずこんな感じかしらね
pattern1 = /[0-9]+,[^,]+,[0-9]+,[0-9]+\/[0-9]+.[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+,[0-9],[0-9],[0-9]+\/[0-9]+\/[0-9]+\/[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[-0-9]+\/[-0-9]+\/[-0-9]+\/[-0-9]+\/[-0-9]+,[0-9]/
File.read('ships.csv', encoding:'Shift_JIS').split("\n").each_with_index{|line, i|
next if i == 0
unless line =~ pattern1
puts line
puts 'false'
exit
end
}
puts 'true'
pattern2 = /[0-9]+,[^,]+,[^,]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+/
File.read('slotitems.csv', encoding:'Shift_JIS').split("\n").each_with_index{|line, i|
next if i == 0
unless line =~ pattern2
puts line
puts 'false'
exit
end
}
puts 'true'
とりあえずテストケースは後回しでもいいので、CIによる自動ビルドテストを導入するべきかと思う。
150 みたいなおバカをせずにすむ。
Windows環境
これはAppVeyorがあるしVSのプロジェクト使えるので問題ない
Linux環境
149 の作業が終わればCUIはビルドできるようになるはず。
GUIは・・・ どうなんだろう。mono動かそうとしたらjsonのdllない、で弾かれたけど、どうにかなるものなのかな?