实施Ruby脚本干运行 [英] Implementing dry-run in ruby script
问题描述
有人知道如何在Ruby中实现干运行选项?
我需要这样的事情,但仅限于红宝石
<一href=\"http://serverfault.com/questions/147628/implementing-dry-run-in-bash-scripts\">http://serverfault.com/questions/147628/implementing-dry-run-in-bash-scripts
我已经试过这一点,但其他部分后不工作:
DRY_RUN = TRUEDEF执行(*参数)
COMMAND = ARGS
如果DRY_RUN
command.each {| X |把X}
其他
command.each {| X | X}
结束
结束执行(看跌期权你好)
感谢提前任何想法。
P.S我不希望使用类似系统(红宝石-e \\看跌期权你好\\)
这可以帮助:
DEF执行(*命令)
commands.each {| X | DRY_RUN?看跌期权(X):的eval(X)}
结束
这结果是:
DRY_RUN = TRUE
执行(看跌期权你好)
看跌期权你好
=> [看跌期权你好]
块引用>DRY_RUN = FALSE
执行(看跌期权你好)
您好
=> [看跌期权你好]
块引用>anybody know how to implement dry-run option in Ruby?
I need something like this, but only for ruby http://serverfault.com/questions/147628/implementing-dry-run-in-bash-scripts
I've tried this, but part after else doesn't work:
DRY_RUN = true def perform(*args) command = args if DRY_RUN command.each{|x| puts x} else command.each {|x| x} end end perform("puts 'Hello'")
Thanks for any idea in advance.
P.S I don't want use something like system
("ruby -e \"puts 'Hello'\"")
解决方案This could help:
def perform(*commands) commands.each { |x| DRY_RUN ? puts(x) : eval(x)} end
It results in:
DRY_RUN = true perform("puts 'Hello'")
puts 'Hello'
=> ["puts 'Hello'"]
DRY_RUN = false perform("puts 'Hello'")
Hello
=> ["puts 'Hello'"]
这篇关于实施Ruby脚本干运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!