gpt4 book ai didi

ruby - Ruby 脚本如何检测到它正在 irb 中运行?

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:42 26 4
gpt4 key购买 nike

我有一个定义类的 Ruby 脚本。我希望脚本执行语句

BoolParser.generate :file_base=>'bool_parser'

仅当脚本作为可执行文件被调用时,而不是当它被 irb require(或通过 -r 在命令行上传递)时。我可以用什么来包装上面的语句,以防止它在我的 Ruby 文件加载时执行?

最佳答案

条件 $0 == __FILE__ ...

!/usr/bin/ruby1.8

class BoolParser

def self.generate(args)
p ['BoolParser.generate', args]
end

end

if $0 == __FILE__
BoolParser.generate(:file_base=>__FILE__)
end

...从命令行运行脚本时为真...

$ /tmp/foo.rb
["BoolParser.generate", {:file_base=>"/tmp/foo.rb"}]

...但是当另一个 ruby​​ 脚本需要或加载该文件时为 false。

$ irb1.8
irb(main):001:0> require '/tmp/foo'
=> true
irb(main):002:0>

关于ruby - Ruby 脚本如何检测到它正在 irb 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com