自作ツールの1.9への移行の流れ

自作ツールの1.9への移行して少しの修正で移行出来たのでメモ。
大体この辺りの対応で何とかなるはず。

まずはruby1.9の最新版へ移行

これは1.9がまだ開発が進んでいるので、古いものだとバグがあるので念のために移行する。

1.9での問題が有る部分を警告させるようにする。

http://jp.rubyist.net/magazine/?0027-WhatWeCanDo で紹介されている警告を出すライブラリを使う。
これは1.8からの移行時に問題がある可能性がある場所を警告を出すだけなので、どうすれば対応するのか細かくは出てこないので注意すること。

文字コード関連

まずは文字コードを設定する。
以下をコードに追加

#encoding: UTF-8


openで文字コードの指定が必要。

open("file", "r:UTF-8") do |f|
  #何か処理
end


CSVを使っていると同様の問題がある。

CSV.open("file", "r:UTF-8") do |f|
  #何か処理
end

上記以外

Array#to_sすると動作が変わる。
今回はこれでハマった。to_sの代わりにjoinにして対応した。

#1.8系
["aaa", "bbb", "ccc"].to_s #=> "aaabbbccc"
#1.9系
["aaa", "bbb", "ccc"].to_s #=> "[\"aaa\", \"bbb\", \"ccc\"]"
["aaa", "bbb", "ccc"].join #=> "aaabbbccc"


String#eachが無くなったのでeach_lineにして対応。