私は現在Pythonでスクリプトを書いていますが、いくつかの理由でRubyを試してみたいと考えています。先週、たくさんのサンプルコードを見て、たくさんのドキュメントを読んできました。私が心配している点の1つは、Rubyで適切なコマンドライン引数を解析するライブラリがないことです。 Rubyのエキスパート、私に怒らないでください - 多分私は知らないでしょう。それが私がここにいる理由です。Ruby optparse制限
Pythonでは、私はを使用するのに慣れていましたが、これは私の意見では単に(おそらく私の必要性のために)完璧です。残念ながら、OptionParser
は、が行う柔軟性と機能を考慮していません。
私は、具体的には今のところ、以下の制約で探しています:
がどのように私は相互に排他的なオプションリスト作るのですか?例えば、
test
と呼ばれるプログラムの非常に小さなオプションリストです。usage: test [-h] [-a | -b | -c] [-d] [filename]
私のようないくつかのコードを書くことができますように
# implement a ---------------------------------------------- opts.on("-a", "--alpha", "implement alpha") do #... end
と。しかし、私は
a
とb
とc
をそれらの順列をコーディングして何らかのエラー処理をしない限り、相互に排他的にする方法はありません。例えば、test -ab #should through an error
Pythonでは、私は非常に簡単な方法でこれを行うことができます:
第二# create an command line argument parser object cmd_line_parser = argparse.ArgumentParser() # create a mutually exclusive group cmd_line_group = cmd_line_parser.add_mutually_exclusive_group()
、私は
-a
とのペアリング-d
の手立てをしたん、私は特にこの順列のためのコードを記述しない限り、 。これは気違いです。自分で
[OPTION]
のリストを書いたことがあります。すべての可能な入力順列についてブラックボックステストを行い、それらをブラックボックスリストにマップしない限り、私が間違っているか正しくないかどうかを知る方法はありません。さらに、強制的な引数は、特別なコードを使用して再度処理する必要があります。
Rubyでoptparse
を使用してこれらの制約を扱うのは簡単や他のライブラリはありますか?
ワウ。それは気違いです。エピック。期間。 私はずっとずっと何をしてきたのですか?すごいです。どうもありがとう。 – p0lAris