Projects: コードのリロード
コードのリロード により、コードを編集してブラウザを更新して変更を確認できます。サーバーを停止と再起動は必要ありません。
開発環境
これは開発専用の機能です。
Hanamiはshotgun Ruby gemを使って必要に応じてコードをリロードします。
新しく生成されたプロジェクトは、 Gemfileにこのエントリを登録します:
group :development do
# Code reloading
# See: http://hanamirb.org/guides/1.2/projects/code-reloading
gem 'shotgun'
end残念ながら、shotgunは現在の環境がfork(2)をサポートすることを要求します。
JRubyとWindowsはそれをサポートしていません。
このような場合、shotgunは開発環境と互換性がないので、そのエントリをGemfileから削除するか、--no-code-reloading引数を使用してサーバーを起動します。
その他の環境
Hanami コードのリロード をそのコアに実装していません。
フレームワークはこの機能については知りません。コードをロードして実行するためにRubyを使用するだけです。shotgun がHanamiプロジェクトのコードをラップすることで、 コードのリロード を可能にすします。
shotgunは開発時にのみ有効になるため、他のすべての環境ではこの コードのリロード 機能はありません。
この機能をフレームワークのコアから除外することで、Hanamiプロジェクトが本番環境でRubyのコード読み込みメカニズムを台無しにしないようにします。
つまり、いったんコードが本番環境にロードされると、それはもう変更されません。