我用来支持我的测试套件的gem /插件调用了一些GNU命令,导致Windows shell翻转并死掉。我可以用这种方式用旁路重写这些函数:
def get_rake_output(task)
if RUBY_PLATFORM.include? 'mingw'
puts 'Skipped since OS is Windows. Run the test suite on a UNIX-like shell.'
''
else
`./rake --silent #{task}`
end
end
当然,每次调用函数时都会打印消息。我如何才能最好地确保它只显示一次?
答案 0 :(得分:4)
用于处理此问题的idomatic ruby方法是记住它
@@warning_said ||= "warning"
答案 1 :(得分:3)
这是ruby中的方法。</rant>
。
使用类@@warning_said
之类的类变量并检查该变量。又名
puts "Ruby does not like Windows here" unless @@warning_said
@@warning_said = true
我并不确定你在哪个范围内操作,但是应该这样做。