require/scope_sharing.rb
tests/_examples/require/scope_sharing.rb in the metorex repository.
# Constants, methods, and classes from a required file are reachable, and its
# local variables are not: each file keeps its own top-level locals.
require_relative "lib/shared_scope"
puts SHARED_VALUE
puts shared_function()
obj = SharedClass.new
puts obj.name
begin
puts shared_var
rescue NameError => refused
puts refused.message
end
Output:
shared value
shared function result
SharedClass instance
undefined local variable or method 'shared_var' for main