file_loader/own_top_level_locals_no_parens.rb

tests/_examples/file_loader/own_top_level_locals_no_parens.rb in the metorex repository.

# A file loaded from another one keeps its own top-level locals, so a name it
# binds there never shows up in the file that loaded it. Constants, methods,
# and classes are shared.
require_relative "own_top_level_locals_lib"

p LOADED_CONSTANT
p loaded_method

begin
  p loaded_local
rescue NameError => refused
  p refused.message
end

p binding.local_variables.sort

Output:

"shared"
"shared method"
"undefined local variable or method 'loaded_local' for main"
[:refused]