require/autoload_reload_warning.rb

tests/_examples/require/autoload_reload_warning.rb in the metorex repository.

module Namespace
  Holder = :placeholder
end

path = File.expand_path("autoload_reload/defines_constant.rb", File.dirname(__FILE__))

registry = Module.new { autoload :VALUE, path }
Namespace::Holder = registry
copy = registry.dup

puts registry.autoload?(:VALUE).nil?.inspect
puts copy.autoload?(:VALUE).nil?.inspect
puts registry::VALUE.inspect

begin
  copy::VALUE
rescue NameError
  puts "copy raises NameError"
end

Output:

false
false
:loaded
copy raises NameError