在 ruby 脚本中实现 dry-运行

Implementing dry-run in ruby script

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

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

我已经试过了,但是后面的部分不起作用:

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 我不想使用类似系统的东西("ruby -e \"puts 'Hello'\"")

这可能有帮助:

def perform(*commands)
  commands.each { |x| DRY_RUN ? puts(x) : eval(x)}
end

结果是:

DRY_RUN = true
perform("puts 'Hello'")

puts 'Hello'

=> ["puts 'Hello'"]

DRY_RUN = false
perform("puts 'Hello'")

Hello

=> ["puts 'Hello'"]