Ruby 「OptionParser は、この説明から自動的にヘルプ画面を生成します」 [http://ruby.about.com/od/advancedruby/a/optionparser.htm]
コマンド オプションのヘルプ テキストを削除する方法はありますか。非表示のコマンドを使用できますが、コマンド オプション (スイッチ) を使用してヘルプ コンテキストを非表示にします。
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