コードリロード

コードリローディングに関しては、サーバーを停止して再起動する必要なく、コードを編集してブラウザの更新をするだけで変更を確認することができます。

 

開発環境

これは開発環境専用の機能です。HanamiはshotgunRuby gemを使用することでコードを必要に応じてリロードできます。新たに生成されたプロジェクトではGemfileの中に次のエントリがあります。

group :development do
  # Code reloading
  # See: http://hanamirb.org/guides/projects/code-reloading
  gem 'shotgun'
end

残念ながら、shotgunを使うには現在の環境がfork(2)をサポートしている必要があります。現時点においてはJRubyとWindowsはそれをサポートしていません。もしshotgun開発環境と互換性がない環境で開発をしている場合はGemfileからエントリを削除するか--no-code-reloading引数を指定してサーバーを起動してください。

その他の環境

Hanamiはコードリローデイングをコアに実装していません。

そのためHanamiフレームワークはこの機能を知らず、コードリローディングはRubyのコードをロードして実行するだけになっています。shotgunはHあなみのプロジェクトコードをラッピングする形でコードリローディングを可能にしています。

その理由としては、shotgunは開発環境のみで有効になっており、他の環境においてはこの機能は存在しません。この機能をフレームワークのコアから除外することにより、Hanamiはプロジェクト内でRubyのコードローディングメカニズムが混乱しないようにしています。

つまり、コードが本番環境に読み込まれると、コードはそれ以上更新されません。