jasagiri @ ウィキ
AutoCode
最終更新:
jasagiri
Introducing Autocode 0.9.9 by Dan Yoder on May 18, 2008
Autocode は基本的にmixinで動作する Ruby のクラスローダです。またモジュールもロードして初期化フックを加えるでしょう。 これは本当のコード再読み込みを提供し、作ったアプリケーションに実際に hot-swap コードを使えるようにできます。これにより実行中のメモリから定数を取り除き、先にロードされたartifacts(?)が残っているという危険はまったくありません。
Example 次のコードは、「View」クラスからViewモジュールの範囲でどんな参照された定数でもロードすることを試すでしょう。結果、 Views::Show は“views/show.rb”をロードしようとするでしょう。
module Views include AutoCode auto_load true, :directories => [ 'views' ] end
また別のより洗練された例もあります。 まず始めに「models」ディレクトリからモデルクラスをロードしようとし、それに失敗すると「default」をクラス生成に使うでしょう。
module Blog module Models class Default # ... end auto_create_class true, Blog::Models::Default auto_load_class true, :directories => ['models'] end end
That’s it. 要求されてロードしたすべてのものの使い方を心配する必要はありません。あなたは実際にダイナミックにロードされたコードをすべて破棄するには Blog::Models.reload を呼ぶことができます。(結果、強制的に再読み込みされます)。
Go to the main project page.(http://autocode.rubyforge.org/)