けいじゅ@日本ラショナルソフトウェアです. 

ちと, 忙しくて返事できていませんが,

原さんのimport-moduleはscope-in-stateのベースとなった, class-in-state
と近いと思います. 

class-in-stateもRAAに入っています.

In [ruby-list:35700] the message: "[ruby-list:35700] import-module (Re: Re: scope-in-state)", on Aug/02 18:10(JST) 
Shin-ichiro HARA writes: 
>原です。
>
>こんな感じなのを作ってみました。([RAA: Import Module])
>
>   require "import-module"
>   class Foo
>     def hello
>       puts 'hello'
>     end
>   end
>
>   module Bar
>     def hello
>       puts 'bye'
>     end
>   end
>
>   module Baz
>     def hello
>       puts 'good-bye'
>     end
>   end
>
>   foo = Foo.new
>   foo.hello                   #=> hello
>   Foo.import_module(Bar) do
>     foo.hello                 #=> bye
>     Foo.import_module(Baz) do
>       foo.hello               #=> good-bye
>     end
>     foo.hello                 #=> bye
>   end
>   foo.hello                   #=> hello
>
>
>エイリアス名ベースで push, pop するという怪しいものですが、
>スピードは速くて
>
>     Foo.import_module(Bar) do
>       10000.times do
>         foo.hello
>       end
>     end
>
>で比較すると、同内容の scope-in-state より 100 倍ほど速いです。
>もっとも
>
>     10000.times do
>       Foo.import_module(Bar) do
>         foo.hello
>       end
>     end
>
>だと、20 倍遅いですが。(当校比 -- あてにならず。)
>
>一応、$IMPORT_MODULE_thread_safe = true で、マルチスレッド対応
>したつもりですが、まだ十分吟味していません。この時は、前者では
>4 倍早く、後者では 40 倍遅いです。
>

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---