metaprogramming/const_added_hook.rb
tests/_examples/metaprogramming/const_added_hook.rb in the metorex repository.
class Tracker
ADDED = []
def self.const_added(name)
ADDED << name
puts ADDED.inspect
end
TEST = 1
SECOND = 2
autoload :Autoload, "tracker/autoload.rb"
class Child
end
end
Tracker.const_set :DIRECT, 4
Output:
[:TEST]
[:TEST, :SECOND]
[:TEST, :SECOND, :Autoload]
[:TEST, :SECOND, :Autoload, :Child]
[:TEST, :SECOND, :Autoload, :Child, :DIRECT]