是否可以确定ruby代码块是在http服务器下执行还是作为独立脚本执行?

时间:2015-05-12 16:02:02

标签: ruby-on-rails ruby gem

我正在编写一个ruby gem,我希望能够区分如果在http服务器下使用gem(即作为rails框架的一部分调用),或者如果从独立脚本调用ruby gem,就像ruby test_script一样。 RB。

我知道我可以检查某些ENV变量,例如' REMOTE_ADDR' ,' HTTP_REFERER'判断它是源自Web应用程序还是独立脚本。但显然它不会一直都是正确的,所以只是想知道是否有更好的方法来检查是否在http服务器下执行ruby代码块。

感谢

1 个答案:

答案 0 :(得分:1)

您可以通过检查当前文件名是否与正在执行的文件的名称匹配来检查是否在命令行上运行ruby脚本。

if __FILE__ == $0
  # ruby gem_name.rb
  puts "On the command line"
else
  # require 'gem_name'
  puts "Gem has been required"
end