显示Ruby程序中未定义的每个参数的错误消息

时间:2015-08-20 15:23:15

标签: ruby io

我在Ruby中创建一个程序来替换一个目录中的多个文件的内容,并且有四个参数:

  • dir 用于定义目录
  • 分机用于定义扩展程序
  • 查找以定义要查找的字符串
  • 替换以定义替换字符串,该字符串定义为 find

现在,这是该计划的开始:

dir, ext, find, replace = ARGV
dir, ext, find, replace = ARGV.shift

raise "Missing argument for directory" unless dir
raise "..." unless ext
#etc

但是,当我在没有定义参数的情况下运行此程序时,它只显示未定义的第一个参数(目录),其中包含 RuntimeError 并且imediatelly关闭程序。对此有什么不同的方法吗?

1 个答案:

答案 0 :(得分:0)

我可以为你提供这样的变体:

missing_parameters = ["dir","ext","find","replace"].select{|name| eval(name).nil?}
raise "Missing parameters for #{missing_parameters.join(',')}" unless missing_parameters.empty?

但坦率地说,我不喜欢使用eval:)