Monday, November 24, 2008

mysql_xml2google_notebook_atom

Google Notebook を使うようになってから、以前に作ったメモを溜める web application が必要なくなったけれど、メモの内容は参照したいことがあったので、Google Notebook にインポートしてみました。

その web application は mysql を使っていたので、 mysql コマンドの --xml オプションで出力した結果の XML を Google Notebook がインポートできる Atom フォーマットの XML に変換するスクリプト mysql_xml2google_notebook_atom.rb を書き、変換してからインポート。

余談ですが、Google Notebook には Atom フォーマットでエクスポートする機能もあります。しかし、残念なことに XML の encoding を iso-8859-1 (latin-1) から変更する方法が分からないので、日本語のノートは Atom ではエクスポートできない。
どこにフィードバックを送ればよいのかわからないので、Google Notebook Official Blog の記事にコメントしました。オープンソースでないとこういうところがもどかしい。

Friday, November 14, 2008

Polymorphic_url should compact given array

ネストした URL にしたい場合、たとえば /groups/1/users だと、routes.rb は、こんな感じ。
map.resources :groups, :has_many => :users

さらに、 group を指定しないユーザーの一覧を取得したい場合 (/users) には resources を追加。
map.resouces :users


polymorphic_path を使うと
polymorphic_path([@group, :users]) # A
polymorphic_path(:users) # B


ここで、 @group が nil だったら、 A は B と同じ解釈をしてほしいいのだけど、
"NoMethodError: undefined method nil_class_users_url'"

のようにエラーになってしまうので、patch を投げたら、 commit された。

非常に小さな変更だけど、パッチが受け入れられるとうれしいもんですね。