Park Place の使用上の問題を解決する

AMAZON S3 を使った開発をしているので、テスト用の S3 モドキとして Park Place を使っている。が、これには今 2 つの問題がある。

  • 遅い。特に spec が。
    • 動作しているマシンが遅いのかも?
    • データを一切消していないからかも?
  • 社内でしか動かない。
    • よって、MacBook単独でどこでも仕事をすることができない。

これを

  • MacBook に Parkplace を入れ、
  • MacBook の再起動時にデータを削除する

というようにして解決する。

実現方法

Park Place は DB(SQLite) にデータを保存している。
このデータを作成するディレクトリを /tmp にすることで、MacBook の再起動毎にデータを消すことを実現する。
データが毎回消えるため、自分で Park Place に登録したユーザーも削除されるが、代わりに最初から登録されている admin ユーザーを使用することで、この問題を回避する。

手順

必要な gem を入れる

merb が動作している環境では、sqlite3-ruby, activerecord, activesupport, camping があれば良いらしい。

http://d.hatena.ne.jp/rabbit2go/20100427/1272376003 を参照して、必要な gem を install する。なお、markaby については、本来必要なバージョンは 0.5 であるが、依存関係の問題でより新しいバージョンがインストールされてしまう。これにより parkplace が起動しなくなってしまう。これは、0.5 以外のバージョンを削除して対応する。

Park Place のソースコード入手

git clone git://github.com/mattjamieson/parkplace.git にて入手

インストール

入手したソースの TOP に移動して、

$ ruby setup.rb config
$ ruby setup.rb setup
$ ruby setup.rb install

※ 最近のものは、最新の activerecord, activesupport で動作しなかったりするので、bin/parkplace でそれらを読み込んでいるところを編集して、バージョンに依存しないように変更する。

MacBook 再起動後に初期化するための設定

$ ln -s /tmp ~/.parkplace

Park Place の起動

$ parkplace

起動するときに初期ユーザー admin が自動作成される。

S3 クライアントの設定

  • ホスト: 127.0.0.1
  • ポート: 3002
  • Key: 44CF9590006BF252F707
  • Secret: OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV

Key と Secret については、最初に作成されるユーザーについては、どの環境であっても上記の値で固定されているらしいので、これを使わせてもらう。