在Ruby中,是否有一个库可以使命令行脚本更加用户友好,并提示我运行什么?

在Ruby中,是否有一个库可以使命令行脚本更加用户友好,并提示我运行什么?,ruby,Ruby,所以我现在要做的是我的Ruby脚本有很多方法,我必须注释掉我不想调用的方法调用,然后在我的命令行脚本中取消注释我想调用的方法 是否有一个Ruby库可以方便地提示用户启动哪个函数?您可以使用ARGV迭代程序的参数。还有,它是一个库,用于以与传统Unix实用程序类似的方式处理命令行参数。如果您想要在源文件中有选择地执行特定方法的代码,则需要编写一个调度表来获取输入并调用所需的任何例程 对于程序员来说,这些都是非常标准的东西,并且易于使用和创造性地使用语句。如果您需要在脚本执行过程中真正提示用户的东西

所以我现在要做的是我的Ruby脚本有很多方法,我必须注释掉我不想调用的方法调用,然后在我的命令行脚本中取消注释我想调用的方法


是否有一个Ruby库可以方便地提示用户启动哪个函数?

您可以使用
ARGV
迭代程序的参数。还有,它是一个库,用于以与传统Unix实用程序类似的方式处理命令行参数。

如果您想要在源文件中有选择地执行特定方法的代码,则需要编写一个调度表来获取输入并调用所需的任何例程


对于程序员来说,这些都是非常标准的东西,并且易于使用和创造性地使用语句。

如果您需要在脚本执行过程中真正提示用户的东西,您可以包装需要提示的方法:

module Confirmable
  def confirm_first *methods
    methods.each do |meth|
      alias_method "orig_#{meth}", meth
      define_method meth do |*args, &block|
        print "Execute #{meth}?[Yn] "
        s = gets.chomp
        return if s.downcase == 'n'
        send "orig_#{meth}", *args, &block
      end
    end
  end
end

class MyClass
  extend Confirmable
  def foo arg
    puts "starting foo"
    puts arg
  end

  confirm_first :foo
end

c = MyClass.new
c.foo "bar"

这样,您用
confirm\u first
标记的每个方法在实际执行之前都会首先要求您进行确认。

我已经使用了选项解析器好几次,并且会说这绝对是正确的方法。有关正在使用的it的示例,请参见。