Ruby 选项解析器:隐藏命令选项的帮助文本



Ruby "OptionParser 将根据此描述自动生成帮助屏幕"[http://ruby.about.com/od/advancedruby/a/optionparser.htm]

有没有办法删除命令选项的帮助文本。我可以使用隐藏的命令,但可以使用命令选项(开关)并隐藏其帮助上下文。

我能够为此提出一个不太优雅的解决方案。 它将从主帮助屏幕隐藏该选项,听起来它可能适合您的需求:

require 'optparse'
options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: #{$0} [options]"
  opts.on("-a", "--argument 1,2,3", Array, "Array of arguments") { |a| options[:array] = a  }
  opts.on("-v", "--verbose", "Verbose output") { |v| options[:verbose] = true }
  opts.on("-h", "--help", "Display this help") do
    hidden_switch = "--argument"
    #Typecast opts to a string, split into an array of lines, delete the line 
    #if it contains the argument, and then rejoins them into a string
    puts opts.to_s.split("n").delete_if { |line| line =~ /#{hidden_switch}/ }.join("n") 
    exit
  end
end

如果要运行 --help,您将看到以下输出:

Usage: test.rb [options]
    -v, --verbose                    Verbose output
    -h, --help                       Display this help

最新更新