0

ファイルの現在の読み取りがコマンドラインから直接行われたのか、それとも読み込み/要求によって行われたのかを検出するにはどうすればよいですか?

よく知られた方法があります:

__FILE__ == $0

ただし、メイン ファイル自体がロードされる可能性がある場合、これは正しく機能しません。

4

1 に答える 1

0

簡単すぎました。フラグを割り当ててチェックするだけです。少し難しいのは、関連する割り当ての順序付けです。(a) 条件、(b) フラグへの割り当て、および (c) ロードは、次の順序で行う必要があります。

if @loaded and __FILE__ == $0
  # the main reading
  ...
else
  # not the main reading
  ...
end
...
@loaded = true
...
the_relevant_command_that_leads_to_loading_of_a_file

それらを別の順序にしたい場合は、これらのいくつかを埋め込んで、この順序を強制する必要があります。

于 2012-11-01T00:51:34.877 に答える