__FILE__で参照できる。
p __FILE__
d:\tempにtest.rbとして保存して実行。
D:\temp>ruby test.rb "test.rb"
File.expand_path(__FILE__)で相対パスを展開すればフルパスが得られる。
p File.expand_path(__FILE__)
test.rbがフルパスに変換される。
D:\temp>ruby test.rb "D:/temp/test.rb"
File.expand_path(__FILE__)した後File.dirnameでディレクトリ名を取得する
p File.dirname(File.expand_path(__FILE__))
実行。
D:\temp>ruby test.rb "D:/temp"
"__FILE == $0"という条件を使って、ライブラリのrbを実行させることも可能。次のようにクラスをためしに実行してみたいときに使える。
class Foo def hello p "hello" end end if __FILE__ == $0 foo = Foo.new foo.hello end