From: Cezary Baginski Date: 2011-06-10T04:49:09+09:00 Subject: [ruby-core:36900] [Ruby 1.9 - Feature #4824] Provide method Kernel#executed? Issue #4824 has been updated by Cezary Baginski. This may seem like heresy, but isn't really: __FILE__ == $0 just a hack for letting a file be *both* a script and a "library" at the same time? With the only sane use (I can think of) being adding unit tests? This was probably useful in the early years of Ruby, but now with the internet, social coding, methodologies, TDD, BDD, packaging (gems), etc. - doesn't it make more sense to have tests and scripts in separate files? Why add a construct for handling a block of code that cannot be called in any other way, than running the script directly, creating dead code that isn't included in coverage? ---------------------------------------- Feature #4824: Provide method Kernel#executed? http://redmine.ruby-lang.org/issues/4824 Author: Lazaridis Ilias Status: Open Priority: Normal Assignee: Category: core Target version: The current construct to execute main code looks not very elegant: if __FILE__ == $0 my_main() # call any method or execute any code end With a Kernel#executed? method, this would become more elegant: if executed? #do this #do that my_main() end or main() if executed? This addition would not break any existent behaviour. -- http://redmine.ruby-lang.org