※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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/