0

Ruby OptionParser を使用していますが、オプション以外の引数を 2 つのリストとして取得する方法がわかりません。

myscript --option-one --option-two file1 file2 -- file10 file11

OptionParser から 2 つのファイル リストを別々に取得する方法はありますか?

[file1, file2]
[file10, file11]

それらのどれがARGVに残っているかは気にしません。2つのリストを別々に作成して、それらを異なる処理に送信したいだけです。

私の現在の解決策は

  1. --次のようにハンドラを追加する

    opts.on('--', 'marks the beginning of a different list of files') do
       ARGV.unshift(:separator)
    end
    

    これにより、次の内容の ARGV が生成されます

    [ file1, file2, :separator, file10, file11 ]

  2. そして、OptionParser の外側で呼び出された後parse!、私は変更しますARGV

    list1 = ARGV.shift(ARGV.index(:separator))
    ARGV.shift
    

それを達成するためのよりエレガントな方法はありますか?

4

1 に答える 1