Hi, Frederick Cheung wrote: > Hi, > > Consider this code > > module Foo > end > > def do_stuff_to_foo(&block) > Foo.module_eval &block > end > > do_stuff_to_foo {def greeting; 'hello'; end} > > If you paste this into irb on 1.9 (r14600, compiled a few minutes ago) > the greeting method is not added to Foo, but to the top level. > On 1.8 it's added to Foo, as I would expect. > > Is this change intentional ? I haven't been able to find anything > written about it. I've had a quick scan back through the source and this > isn't a particularly recent change - r11500 exhibits the same behaviour. > I'd be curious to hear the rationale if this is indeed intentional This is a bug. If you write a block in method do_stuff_to_foo directly, it's work fine. I'll fix it. -- // SASADA Koichi at atdot dot net