实施Ruby脚本干运行 [英] Implementing dry-run in ruby script

查看:119
本文介绍了实施Ruby脚本干运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆