テスト実行時に接続先のDBを切り替える処理を実装中・・・
サーバ起動のrakeタスクは、内部でfontanaのrakeタスクを実行していましたが、直接railsコマンドなどを実行するように変更します
起動するapp_modeによって、デーモンのPIDファイルの名前を変更しないと、同時に起動できないのでdevelopmentとtestのapp_modeについて、それぞれ別のrakeのnamespaceで定義するようにしました。
fix indentation
development, testでそれぞれのHTTP,HTTPS用ポートを固定しました。
起動するサーバにFONTANA_APP_MODEを設定するようにしました
サーバ起動時にFONTANA_APP_MODEを指定するように変更しました。また、defaultとして指定されるspec_with_server_daemonsの構造を大きく変更しました
rakeタスクを実行した際に、起動したサーバを停止するようにしました
サーバの起動が完了するまで待つ方法をこれまではおおまかの時間を指定してsleepするだけでしたが、使用するポートがLISTENされるまで待つようにしました。この待つ処理にはタイムアウトが設定してあります（デフォルト2分）。
またrake defualtコマンド実行時に対象となるポートが使われていたらすぐにエラーとなるようにしました。
起動したサーバの標準出力への出力する量が多すぎるので、/dev/nullへ捨てることにしました。このうちRails.loggerへの出力はファイルに出力されているので、確認可能です。
使わなくなったタスクを削除しました
動的に決まっているように見えてましたが、実はほぼ静的に決まっていたので定義方法を変更しました
サブプロセスにすべて環境変数FONTANA_APP_MODEとしてtestを設定するためにapp_mode:testタスクを実行するようにしました
アプリでrakeタスクを起動して開発用のデータを投入したりするので、app_modeのデフォルト値をproductionからdevelopmentに変更しました。
ファイルを操作せずに、DBだけ作りなおすrakeタスクを呼び出せるようにしました
タスク名が間違っていたので修正しました
spawn_at_vendor_fontanaをspawn_at_vendor_fontana_with_sweeperを分けました
サーバ起動時に xxx:server:update_version_set_entries を実行するようにしました。
このrakeタスクは環境変数GSS_VERSION_SET_FIXTURE_FILEPATHが設定されている場合にのみ、fontanaでrake version_set:update_entry_versionsを実行します。
またpidファイルを作るディレクトリのパスを修正しました
taskメソッド呼び出し時にはvendor/fontanaが存在するが、vendor/fontanaを一度削除して再構築する場合、vendor:fontana:prepare実行時にはディレクトリが存在しない場合があって意図した通りに動いていませんでした。
つまりこのタスクは静的に実行するタスクを判断できないタスクでした。
引数の定義が間違っていたので修正しました