Bug #16988
closed
Kernel.load loads file from current directory without '.' in path
Added by TheSmartnik (Nikita Misharin) over 4 years ago.
Updated over 4 years ago.
Description
Ruby allows to load files using Kernel.load
without explicitly specifying the relative path with .
I'm not sure it's a bug or a feature, but since documentation in master doesn't say anything about it and the behavior differs from require where it was changed intentionally, I consider it a bug
Reproduction steps¶
- Have a file (
file.rb
) in a directory
- Start irb session in the directory
- Load a file:
load 'file.rb'
Tested in versions¶
I don’t this is an implementation bug, but a documentation issue.
nobu (Nobuyoshi Nakada) wrote in #note-1:
I don’t this is an implementation bug, but a documentation issue.
Shouldn't behavior be consistent with require, though?
TheSmartnik (Nikita Misharin) wrote in #note-2:
nobu (Nobuyoshi Nakada) wrote in #note-1:
I don’t this is an implementation bug, but a documentation issue.
Shouldn't behavior be consistent with require, though?
I don't think so. load
has always been able to load files that exist relative to the current directory, and require
has not. Technically, in Ruby <1.9, require
worked similarly because '.'
was in the default load path). load
and require
are different in many other ways, and changing this to increase the consistency between them doesn't make sense to me.
Changing load
's behavior would definitely break things. I agree with @nobu (Nobuyoshi Nakada) that this is a documentation issue, and I'll try to update the documentation to explain it.
- Status changed from Open to Closed
Applied in changeset git|e1bbb9ea9ce205320267783960cfb2e9215d5f52.
Document that Kernel#load will load relative to current directory [ci skip]
Update and format the Kernel#load documentation to separate the
three cases (absolute path, explicit relative path, other), and
also document that it raises LoadError on failure.
Fixes [Bug #16988]
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0