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のコード読み込みメカニズムを台無しにしないようにします。

つまり、いったんコードが本番環境にロードされると、それはもう変更されません。