From: Benoit Daloze Date: 2010-03-24T07:03:47+09:00 Subject: [ruby-core:28911] [Feature #1961] Kernel#__dir__ Issue #1961 has been updated by Benoit Daloze. > (1) add a toplevel constant __DIR__ > pros: looks like __FILE__ > cons: adding new keyword > > (2) add Kernel#__DIR__ > pros: no new keyword > cons: it should have a lower-case name (like 1.9's __method__), > because it is not a constant but a method. > > (3) add Kernel#__dir__ > pros: no new keyword, and it is clearer than (4) that it has > some associations with __FILE__. > cons: lacking consistency for __FILE__ > > (4) make __FILE__ to the default argument of File.dirname > pros: no new keyword nor new method > cons: it is not clear that 'File.dirname' is expanded to > the path of directory of __FILE__. +1 for (1) and (3) I first felt that __DIR__ is more "natural" to me (because the script directory is something constant). After a bit thinking, (3) looks fine too (to remember we are calling a function). I think (2) is a bad mix and (4) does not really improve File.dirname(__FILE__) B.D. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/1961 ---------------------------------------- http://redmine.ruby-lang.org