Question
I see this all the time in Ruby:
require File.dirname(__FILE__) + "/../../config/environment"
What does __FILE__
mean?
Answer
It is a reference to the current file name. In the file foo.rb
, __FILE__
would be interpreted as "foo.rb"
.
Edit: Ruby 1.9.2 and 1.9.3 appear to behave a little differently from what Luke Bayes said in [his comment](https://stackoverflow.com/questions/224379/what-does-file-mean-in- ruby#comment1243516_224383). With these files:
# test.rb
puts __FILE__
require './dir2/test.rb'
# dir2/test.rb
puts __FILE__
Running ruby test.rb
will output
test.rb
/full/path/to/dir2/test.rb