Josh Moore Josh Moore - 2 months ago 14
Ruby Question

What does __FILE__ mean in Ruby?

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. 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