optparse

ムスカシス。調査中:

  • 特定のオプションにオプション指定されない時のデフォルト値を設定する方法 解決
    • バカ。nil で初期化しなけりゃいい。
  • オプションなしで必須の引数の設定方法 解決
    • mycmd.rb [-hujiko] input_file output_file の後ろのファイル2つみたいな
    • parse! した後の ARGV はオプション分が消えてたので普通に取れた。

akr さんの google-count を真似て、

   ARGV.options { |q|
      q.def_option('-h') { puts q; exit 0 }
      q.def_option('-s VAL') { |v| $start_cell = v }
      q.def_option('-c VAL') { |v| $col_skip_size = v.to_i || 0 }
      ...
      q.parse!
   }

ってやってるんだけど少数派?

opt = OptionParser.new
opt.on('-h') { puts q; exit 0 }
opt.on('-s VAL') {|v| OPTS[:s] = v}
opt.on('-c VAL') {|v| OPTS[:c] = v}
...
opt.parse!(ARGV)

こっちばっかり引っかかるな。


とりあえず、オプションが増えてきたのでグローバル変数をやめてハッシュに閉じ込めよう。