From: "ara.t.howard" Date: 2009-09-28T15:12:17+09:00 Subject: [ruby-core:25814] [BUG] i have been out of the loop on 1.9 development, but this sure looks like a bug to me cfp:~ > cat a.rb ClassMethods = lambda do def foo() 40 end end A = Module.new do self::ClassMethods = lambda do def bar() 2 end end end module B self::ClassMethods = lambda do def foobar() 42 end end end def factory(*args, &block) Class.new do singleton_class = class << self self end singleton_class.module_eval(&::ClassMethods) singleton_class.module_eval(&::A::ClassMethods) singleton_class.module_eval(&::B::ClassMethods) module_eval(&block) end end factory{ foo() bar() foobar() #=> raises! } cfp:~ > ruby19 a.rb a.rb:41:in `block in
': undefined method `foobar' for # (NoMethodError) from a.rb:34:in `module_eval' from a.rb:34:in `block in factory' from a.rb:24:in `initialize' from a.rb:24:in `new' from a.rb:24:in `factory' from a.rb:38:in `
' cfp:~ > ruby18 a.rb (no output)