5
我有一個定義類的Ruby腳本。我想腳本來執行該語句Ruby腳本如何檢測到它在irb中運行?
BoolParser.generate :file_base=>'bool_parser'
只有當腳本調用爲可執行文件,而不是當它是require
「從IRB D(或通過-r
在命令行上傳遞)。我可以繞過上面的語句來阻止它在我的Ruby文件加載時執行?
我有一個定義類的Ruby腳本。我想腳本來執行該語句Ruby腳本如何檢測到它在irb中運行?
BoolParser.generate :file_base=>'bool_parser'
只有當腳本調用爲可執行文件,而不是當它是require
「從IRB D(或通過-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腳本加載的文件。
$ irb1.8
irb(main):001:0> require '/tmp/foo'
=> true
irb(main):002:0>