2012-04-26 7 views
4

Rubyファイルがコマンドラインから単に実行されるのではなく "require"または "load"経由でインポートされたかどうかを確認するにはどうすればよいですか?Rubyプログラムが実行されたかどうかを確認する必要があります

例:foo.rbの

内容:bar.rbの

puts "Hello" 

内容

require 'foo' 

出力:

$ ./foo.rb 
Hello 
$ ./bar.rb 
Hello 

基本的に、私がしたいですbar.rbを呼び出してputs呼び出しを実行しないようにします。 - 現在のルビーファイルの名前 - $0に対する

if __FILE__ == $0 
    puts "Hello" 
end 

__FILE__をチェック:foo.rb内のすべてのコードの先頭に読み込むための

答えて

3

変更foo.rbこれを入れて

4
if __FILE__ != $0  #if the file is not the main script which is running 
    quit     #then quit 
end 

- 実行中のスクリプトの名前。