Kernel.load loads file from current directory without '.' in path
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
- Have a file (
file.rb) in a directory
- Start irb session in the directory
- Load a file:
Tested in versions¶
Updated by jeremyevans0 (Jeremy Evans) 29 days ago
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).
require are different in many other ways, and changing this to increase the consistency between them doesn't make sense to me.
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.
Updated by jeremyevans (Jeremy Evans) 29 days ago
- 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]