🙆

[Bug #20920] load 'foo.rb' した時の __FILE__ の値の話

2025/01/21に公開

[Bug #20920] When loading a file, FILE gets relative paths expanded only when they start with "./"

  • 次のように load するときに ./ がついているかどうかが __FILE__ に影響がある話
$ cat foo.rb
puts __FILE__
foo.rb

$ ruby ./foo.rb
./foo.rb

$ ruby -e 'load "foo.rb"'
foo.rb

$ ruby -e 'load "./foo.rb"'
/full/path/to/foo.rb
$ ruby foo.rb
foo.rb   # 現状維持

$ ruby ./foo.rb
./foo.rb # 現状維持

$ ruby -e 'load "foo.rb"'
foo.rb # これを full path に変更する

$ ruby -e 'load "./foo.rb"'
/full/path/to/foo.rb # 現状維持
GitHubで編集を提案

Discussion