检测当前文件是否为主文件

时间:2012-11-01 00:28:37

标签: ruby file recursion

如何检测文件的当前读取是直接从命令行完成还是通过加载/要求完成?

有一种众所周知的方式:

__FILE__ == $0

但是当主文件有可能加载时,这不能正常工作。

1 个答案:

答案 0 :(得分: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

如果我想以不同的顺序使用它们,我必须嵌入其中一些并强制执行此命令。