以前、ruby-garoon2icalを利用させて頂き、会社のサイボウズガルーンとgoogleカレンダー経由でiphoneのカレンダーに表示させていたが、ruby1.9.2にアップデートしてからプログラムがエラーを吐くようになった。
エラー箇所は「csv = CSV.parse(result3.body.toutf8)」の部分で、調べると改行コードがCR+LFだとエラーになるっぽい。
仕事のスケジュールが見えないと、何かとめんどくさいのでruby1.9で動くように改修。
たぶん上手い書き方があると思うけど、とりあえず動けば良いので、一旦改行コードがCR+LF形式のCSVを出力してから改行コードを置換すると言った幼稚な書き方をしています。
icalはちゃんと作成されたっぽいので、後はgoogleカレンダーの設定をやり直して待つだけ。
ちゃんと読み込むといいなぁ。
【追記】
cronで回したら以下のようなエラーが発生。
/usr/local/lib/ruby/1.9.1/csv.rb:2027:in `=~': invalid byte sequence in US-ASCII (ArgumentError)
from /usr/local/lib/ruby/1.9.1/csv.rb:2027:in `init_separators'
from /usr/local/lib/ruby/1.9.1/csv.rb:1570:in `initialize'
from /usr/local/lib/ruby/1.9.1/csv.rb:1335:in `new'
from /usr/local/lib/ruby/1.9.1/csv.rb:1335:in `open'
from /usr/local/apache2/htdocs/garoon2-sync/garoon2ical.rb:65:in `<main>'
ruby1.9から文字コードの取り扱いが厳格になった(ruby1.8を知らんが)らしいので、実行時に文字コードを指定する。
ruby -Ku garoon2ical.rb
【追記2】
同期したら文字化けしてた。
どうやらicsを直接見に行かせると、charsetを送っていないらしい。
icsを吐くディレクトリに.htaccessを作成して
AddType “text/calendar; charset=utf-8” ics
を記載。