Bug #4403: require command loads file twice when required symlink or file under directory which is symlink (symbolic link)
http://redmine.ruby-lang.org/issues/show/4403

Author: Robert Pankowecki
Status: Open, Priority: Normal
ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux] 

Consider this file structure:

~/test/symbolic  > tree
.
|-- a
|   `-- a.rb
|-- b -> a
|-- c.rb
`-- d.rb -> c.rb


Current behavior:

ruby-1.9.2-p136 :001 > require './c'
 => true 
ruby-1.9.2-p136 :002 > require './d'
./d.rb:1: warning: already initialized constant CON2
 => true 
ruby-1.9.2-p136 :003 > require './a/a'
 => true 
ruby-1.9.2-p136 :004 > require './b/a'
./b/a.rb:1: warning: already initialized constant CON
 => true 

Expected behavior:

ruby-1.9.2-p136 :001 > require './c'
 => true 
ruby-1.9.2-p136 :002 > require './d'
 => false
ruby-1.9.2-p136 :003 > require './a/a'
 => true 
ruby-1.9.2-p136 :004 > require './b/a'
 => false

This bug can be reproduced at Ruby 1.8.7, too.


----------------------------------------
http://redmine.ruby-lang.org