Project

General

Profile

Bug #15733

Inconsistent __FILE__ and Kernel#__dir__

Added by tagomoris (Satoshi TAGOMORI) over 1 year ago. Updated about 1 year ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:92028]

Description

This might be duplicated with #7975, #8098 and #3346, but I believe it's worth to revisit.

Now, Ruby has __FILE__ keyword and Kernel#__dir__ method. One is of upper-case chars, and the other is of lower-case chars.
I make mistakes always when I want to get the directory name of the current file, to write __DIR__ (of course, it doesn't exist).
That is because of inconsistency between __FILE__ and __dir__.

I understood the reason why __dir__ is of lower-case chars (to show it's defined as a method, not keyword), but this inconsistency brings huge confusion to me.
So, in my opinion, Ruby should have one of these options below:

  • keyword __DIR__
  • method alias Kernel#__DIR__ (as a compromise, but are there any difference between keyword __DIR__ and Kernel#__DIR__?)
  • method Kernel#__file__ (we don't take care of method overheads when we access file systems)

Also available in: Atom PDF