1 つの Ruby プログラムでOptionParser を複数回起動し、それぞれ異なるオプション セットを使用する方法はありますか?
例えば:
$ myscript.rb --subsys1opt a --subsys2opt b
ここで、myscript.rb は subsys1 と subsys2 を使用し、それらのオプション処理ロジックをそれらに委譲します。おそらく、'a' が最初に処理され、続いて別の OptionParser オブジェクトで 'b' が処理されるシーケンスになります。そのコンテキストにのみ関連するオプションを選択するたびに。最終フェーズでは、各パーツが処理された後に不明な点が何も残っていないことを確認できます。
使用例は次のとおりです。
さまざまなコンポーネントが異なる引数を持つ疎結合のフロントエンド プログラムでは、引数/オプションのセットを各部分に委譲するためだけに、「メイン」にすべてを知ってほしくありません。
RSpec のような大規模なシステムをアプリケーションに組み込み、ラッパーがそれらを認識せずに、オプションを介してコマンドラインを渡すだけです。
--
または--vmargs
一部のJavaアプリのように、区切り文字オプションでも問題ありません。
Unix の世界 (startx/X、git plumbing、および磁器) には、1 つのレイヤーがいくつかのオプションを処理し、残りを下のレイヤーに伝達する、同様のものの実世界の例がたくさんあります。
そのままでは、これは機能しないようです。各OptionParse.parse!
呼び出しは徹底的な処理を行い、不明な点はすべて失敗します。不明なオプションはスキップしてよろしいかと思います。
ヒント、おそらく別のアプローチを歓迎します。