require/circular.rb

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

# Test that circular requires don't cause infinite loops
# circular_a requires circular_b, circular_b requires circular_a
# The second require_relative should be a no-op due to deduplication
require_relative "lib/circular_a"
puts "main done"

Output:

circular_a loading
circular_b loading
circular_b done
circular_a done
main done