metaprogramming/const_added_top_level_parens.rb

tests/_examples/metaprogramming/const_added_top_level_parens.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