是否有可能告诉红宝石只发出一次警告,而不是多次?
class SoylentGreen
def eat
warn "Algae harvesting not implemented. Soylent green is people!"
end
end
5.times do
soylent_green = SoylentGreen.new
soylent_green.eat
end
Run Code Online (Sandbox Code Playgroud)
产生
Algae harvesting not implemented. Soylent green is people!
Algae harvesting not implemented. Soylent green is people!
Algae harvesting not implemented. Soylent green is people!
Algae harvesting not implemented. Soylent green is people!
Algae harvesting not implemented. Soylent green is people!
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望它只发生一次.
我没有使用rails,并且可以访问ruby 1.8和1.9.
替代方案包括编写我自己的警告系统(它仅涵盖这样的故意警告),或者将警告置于其外SoylentGreen#eat(即使未调用该方法也会显示警告).
根据Chaos的回答..
class SoylentGreen
def eat
warn_once "Algae harvesting not implemented. Soylent green is people!"
end
def warn_once(msg)
@@warned||=false
if not @@warned then
@@warned = true
warn msg
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1474 次 |
| 最近记录: |