rubyzipをvendorディレクトリに配置する

Rubricksでは、その上に乗っかるコンポーネントをrzipという圧縮ファイル形式で取り扱う。Javaでいえばwarファイルと同じような位置付けである。rzipを解凍するためにrubyzipというライブラリを利用しているのだが、gemでインストールしてもらうという方針だと通常の利用者にはやはり敷居が高い。安定版をリリースする頃にはレンタルサーバでも動作するようにしておきたい。


rubyzipのソースをダウンロードしてみる。ファイル構成は以下のようになっている。

/
  lib/
    zip/
      ライブラリ群
  sample/
    サンプルコード群
  test/
    テストコード群
  ドキュメント類

動作に必要なのはライブラリ群だけなので、RailsAppのvendorディレクトリ以下にとりあえず配置してみる。

/
  vendor/
    plugins/
      rubyzip/
        lib/
          zip/
            ライブラリ群
        init.rb

ライブラリとしてはいくつかのファイルに分かれているのだが、ソースを斜め読みしてみたところ、zip.rbをrequireしてあげれば必要に応じて他のファイルを呼び出しているようだ。なので、init.rbには以下のように記述してみる。

require 'zip/zip'

上記の変更を反映するため、WEBRickを再起動してコンポーネントの登録処理を行ってみる。

普通に動く。一発で動いてしまうと逆に不安になるのだが、Functional TestとSelenium Testを流し直しても特にエラーはでていない。Railsって素敵だなと思う。しばらく様子を見て問題なければ次回リリースに適用しよう。