
Issue #19871 has been updated by nobu (Nobuyoshi Nakada). Why not use the constant without scopes? ```ruby module M C = 1234 def m puts "method(__method__).owner: #{method(__method__).owner}" puts "method(__method__).owner::C: #{method(__method__).owner::C}" puts "C: #{C}" #=> 1234 end end ``` ---------------------------------------- Feature #19871: Add __owner__ https://bugs.ruby-lang.org/issues/19871#change-104515 * Author: konsolebox (K B) * Status: Open * Priority: Normal ---------------------------------------- Which will give the owner of the currently executing method. `method(__method__).owner` or `method(__callee__).owner` isn't enough since it may return a different owner if the method is overridden. Relying on calling the name of its owner is also theoretically not reliable since the constant can be overshadowed and it makes code less portable when moving it from one namespace to another. -- https://bugs.ruby-lang.org/