Actions
Bug #10067
closedFile.file? misleading semantics & documentation for symbolic links
    Bug #10067:
    File.file? misleading semantics & documentation for symbolic links
  
Description
The documentation for File.file? states:
"Returns true if the named file exists and is a regular file."
When trying that out I get the following results:
% /usr/bin/stat link
  File: `link' -> `file'
  Size: 4         	Blocks: 0          IO Block: 4096   symbolic link
Device: 16h/22d	Inode: 2804357     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/    robe)   Gid: ( 1000/    robe)
Access: 2014-07-19 01:01:51.514979670 +0200
Modify: 2014-07-19 01:01:50.799975936 +0200
Change: 2014-07-19 01:01:50.799975936 +0200
 Birth: -
% ruby -e "puts File.file?('link')"
false
% ruby -e "puts File.symlink?('link')"
true
% touch file
% ruby -e "puts File.file?('link')"
true
% ruby -e "puts File.symlink?('link')"
true
%
which is entirely not what one would expect.
You need to decide if the File ?-methods offer stat OR lstat semantic, change it and document it accordingly.
The current documentation and implementation behavior is especially confusing since the POSIX standard states that the type of a file can be either a regular file OR a symlink, not both at the same time.
Actions