在红宝石中实施干运行

时间:2016-04-20 11:17:40

标签: scripting ruby

有人知道如何在Ruby中实现干运行选项吗?

我需要这样的东西,但仅限于红宝石。 https://serverfault.com/questions/147628/implementing-dry-run-in-bash-scripts

我已尝试过此操作,但在else之后无法工作:

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'")

提前感谢任何想法。

P.S我不想使用像system("ruby -e \"puts 'Hello'\"")

这样的东西

1 个答案:

答案 0 :(得分:0)

在else句子上,你有:

command.each { |x| x }

如果您正在运行系统命令,则将其替换为system(x);如果您尝试运行ruby代码,则替换为eval(x),例如:

DRY_RUN = true

def perform(*args)
  command = args
  if DRY_RUN
    command.each{ |x| puts x }
  else
   command.each { |x| system(x) }
  end
end

DRY_RUN = true

def perform(*args)
  command = args
  if DRY_RUN
    command.each{ |x| puts x }
  else
   command.each { |x| eval(x) }
  end
end