metaprogramming/const_added_top_level.rb
tests/_examples/metaprogramming/const_added_top_level.rb in the metorex repository.
class Module
def const_added(name)
puts "added #{name} to #{self.name || self.inspect}"
end
end
module TopLevelModule
end
class TopLevelClass
end
TopLevelConstant = 1
module Outer
Inner = 2
module Nested
end
end
AnonymousBound = Module.new
puts AnonymousBound.name
Output:
added TopLevelModule to Object
added TopLevelClass to Object
added TopLevelConstant to Object
added Outer to Object
added Inner to Outer
added Nested to Outer
added AnonymousBound to Object
AnonymousBound