__FILE__ は実行中のプログラムのファイル名
こんな風に使える。
puts "filename: #{__FILE__}
似たようなのに $0 がある。
しかし $0 と __FILE__ は似て非なるもの。
__FILE__ が実行中のプログラムのファイル名を表すのに対し、
$0 は実行するときに指定したプログラムのファイル名を表す。
> ruby hoge.rb
のように実行するプログラムが1つの場合は、
__FILE__ と $0 の値は一致する。
しかし、別のプログラムから require したときは、
__FILE__ と $0 は一致しない。
この特徴を利用して、
__FILE__ と $0 はライブラリのサンプルコードによく利用される。
例えば以下のようにして書けば、
ライブラリとして利用されるとき(require されて使われるとき)は
サンプルコードの部分は実行されない。
if __FILE__ == $0 # サンプルコード end