检查是否已通过require执行或导入Ruby程序

时间:2012-04-26 13:14:48

标签: ruby command-line

如何检查Ruby文件是通过“require”还是“load”导入的,而不是简单地从命令行执行?

例如:

foo.rb的内容:

puts "Hello"

bar.rb的内容

require 'foo'

输出:

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

基本上,我想调用bar.rb来不执行puts调用。

2 个答案:

答案 0 :(得分:5)

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

将它放在foo.rb

中的所有代码之上

答案 1 :(得分:4)

将foo.rb更改为:

if __FILE__ == $0
  puts "Hello"
end

检查__FILE__ - 当前ruby文件的名称 - 针对$0 - 正在运行的脚本的名称。