Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method · added in Ruby 4.1

Module#autoload_relative

mod.autoload_relative(const, filename) → nil

Registers filename to be loaded (using Kernel::require) the first time that const (which may be a String or a symbol) is accessed in the namespace of mod. The filename is interpreted as relative to the directory of the file where autoload_relative is called.

Example
module A
end
A.autoload_relative(:B, "b.rb")

If const in mod is defined as autoload, the file name to be loaded is replaced with filename. If const is defined but not as autoload, does nothing.

The relative path is converted to an absolute path, which is what will be returned by Module#autoload? for the constant.

Raises LoadError if called without file context (e.g., from eval).

Ruby version changes

  1. 4.1
    • Kernel#autoload_relative and Module#autoload_relative are added. These methods work like autoload, but resolve the file path relative to the file where the method is called, similar to require_relative. This makes it easier to autoload constants from files in the same directory without hardcoding absolute paths or manipulating $LOAD_PATH. [Feature #15330]