今、まさに開発しているプロジェクトにぴんとくるソフトウェアを探し出した。Ruby on RailsとWebDAVを連携させて面白いことができないかと思っていたのだが、RailsでWebDAVを実装してしまうのだ。

ピクチャ 3-47

今回紹介するオープンソース・ソフトウェアはRailsdav、Ruby on Rails用のWebDAVプラグインだ。

実装は簡単。プラグインをインストールして、routes.rbに設定を追加する。後は専用のコントローラーを介してWebDAVの機能が提供されるようになる。

ピクチャ 4-42

Webrickで動作するか確認していないが、Mongrelでは動作した。尚、日本語のファイル名は文字化けするのと、Mac OSX上で直接ファイルを編集するとエラーが起きてしまった。

魅力としてはユーザ管理などは既存のRailsアプリケーションで提供されているものをそのまま利用できたり、ユーザごとのディレクトリ切り替えもごく簡単だと言うことだ。さらに各アクションごとにコールバック関数が定義されているので、何のファイルを受け取ったかなどの情報も簡単に利用できる。

また、ログを見ることでWebDAVサーバがどのように動作しているのか知ることもでき、面白い。PUTメソッドやDELETEメソッド、PROPFINDメソッドなど通常のアクセスではお目にかからないメソッドが随時利用されている。

もちろん、ApacheなどのHTTPサーバレベルでもWebDAVは提供されている。が、アプリケーション側との連携はなかなか難しい。そうした中、Ruby on Railsでネイティブに対応しているという点はかなり便利だろう。

Liverail -
 http://www.liverail.net/railsdav