From: "ko1 (Koichi Sasada)" Date: 2012-11-26T09:18:36+09:00 Subject: [ruby-core:50122] [ruby-trunk - Bug #4502] strange Module.new behaviour Issue #4502 has been updated by ko1 (Koichi Sasada). Assignee changed from ko1 (Koichi Sasada) to nobu (Nobuyoshi Nakada) nobu, could you check it? I think you tried something like this issue. ---------------------------------------- Bug #4502: strange Module.new behaviour https://bugs.ruby-lang.org/issues/4502#change-33905 Author: evilbrain (Andy Bogdanov) Status: Assigned Priority: Normal Assignee: nobu (Nobuyoshi Nakada) Category: core Target version: 2.0.0 ruby -v: ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32] =begin First I create a proc: p = proc { self::X = Class.new def self.X X.new end } Then I create a module: A = Module.new(&p) puts A.X # => # Then I create another module: B = Module.new(&p) puts B.X # => # Everything seems to be ok. But after module B was created (({A.X})) started to return instances of (({B::X})) puts A.X # => # When (({self::X.new})) is used instead of (({X.new})) everything works as expected. More info can be found here http://www.ruby-forum.com/topic/1275717 =end -- http://bugs.ruby-lang.org/