file_loader/required_by_name_no_parens.rb
tests/_examples/file_loader/required_by_name_no_parens.rb in the metorex repository.
# The same run written without parentheses where they can be left off.
#
# What `require` does with the name it is handed: it searches the load path
# for a `.rb` file, answers whether this call loaded it, and reads a name
# already listed as loaded without going looking for it.
$required_by_name = 0
here = __dir__
$LOAD_PATH.unshift here
p require "required_by_name_target"
p require "required_by_name_target"
p $required_by_name
# A path written from the working directory names that one file and is not
# searched for along the load path.
begin
require "./not_beside_the_working_directory"
rescue LoadError => refused
p refused.path
end
# What the interpreter carries itself is loaded already.
p require "set"
# A file already listed under the name asked for is not looked for at all.
$LOADED_FEATURES << "a_name_with_no_file.rb"
p require "a_name_with_no_file.rb"
$LOAD_PATH.shift
Output:
true
false
1
"./not_beside_the_working_directory"
false
false