2016-10-03 12 views
3

CLI Ruby gem my_command --helpクリーナーの出力を作成しようとしています。複数行のCLIヘルプテキストをOptionParserに水平に整列する方法

いくつかのCLIオプションとフラグがあり、それらを説明するためにいくつかの文章が必要です。説明が長すぎて通常の端末幅のビューに収まらない場合、このテキストを列に正しく配置する方法が見つかりませんでした。 、例として

ab --help as an example のab --helpいくつかのフラグが適切に位置合わせされた、複数行の説明を持っているか注意してください。

私はこのような何かを持っていると思います。それは働いて

opts.on("-d", "--directory PATH", String, "Directory to save the downloaded files into\n\t\t\t\t  Default is ./websites/ plus the domain name") do |t| 
    options[:directory] = t 
end 

、それが最適ないないようです:

今、私たちは何かを説明するために複数の行を必要とする場合には、その列に並んだテキストを維持するためにはOptionParserでこのような何かをしていますフォーマットすることを強制するためにどこでも\tを持っていない。さらに、他の端末構成でも正しくフォーマットされていない場合があります。

複数行のCLIヘルプテキストをOptionParserに水平に整列させるにはどうすればよいですか?

opts.on("-d", "--directory PATH", String, 
     "Directory to save the downloaded files into", 
     "Default is ./websites/ plus the domain name") do |t| 
    options[:directory] = t 
end 

これは非常に明確に公式ドキュメントに記載されていないですが、あなたはそれがcomplete exampleで使用見ることができます:

+0

ref:https://github.com/hartator/wayback-machine-downloaderの問題を抱えている宝物 – Hartator

+1

テストはできませんでしたが、ここから探し始めます:http://ruby-doc.org /stdlib-2.3.1/libdoc/optparse/rdoc/OptionParser.html#method-i-summarize、 'indent'オプションと' width'オプションがあります。 – lcguida

答えて

1

あなたはopts.onに多くのパラメータを追加することによって、タブを追加することなく、改行を強制することができます。

関連する問題