Bug #7043
closedbug with Require
Description
~/projects/a/bins/bin.rb
~/projects/a/env.rb
cat ~/projects/a/bins/bin.rb
require File.join(File.dirname(FILE), %w{.. env})
cd ~/projects
ruby a/bins/bin.rb
/home/kostya/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- a/bins/../env (LoadError) from /home/kostya/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require'
from a/bins/bin.rb:1:in `'
cd ~/projects/a
ruby ./bins/bin.rb
OK
But, when i cd in and out, problem disappear (may be some path caching). When create new terminal problem is.
I also can replace code with expand_path, but in 1.8.7 there is no this problem.
Updated by eyeshield21 (Eyeshield 21) over 12 years ago
hm, i found a difference "./"
ruby ./a/bins/bin.rb
OK
ruby a/bins/bin.rb
/home/kostya/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- a/bins/../env (LoadError) from /home/kostya/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require'
from a/bins/bin.rb:1:in `'
Updated by mame (Yusuke Endoh) about 12 years ago
- Status changed from Open to Rejected
This is an intentional change. Since 1.9, the default search path does
not include "." (current working directory) to make it more secure.
You may want to use require_relative which loads a file relative to the
directory that contains the loading file:
require_relative "../env"
--
Yusuke Endoh mame@tsg.ne.jp