トップ «前の日記(2005-07-08) 最新 次の日記(2005-07-11)» 編集

2005-07-10 [長年日記]

_ optparse チュートリアル補完メモ

OptionParser は定義に反するオプションの与え方をすると例外を発生しちゃうんだけど、こんな書き方で対処できる。まぁ、optparse チュートリアルとマニュアルの例外処理のところを読めば誰でも分かるんですけど。

require 'optparse'
opt = OptionParser.new()

opt.on( '-f filename' ) { |src|
  @srcpath = src
}

begin
  opt.parse!( ARGV )
rescue => err
  puts err.to_s
end

チュートリアルには InvalidOption だけ書かれていたが、実際には

InvalidOption
未定義のオプションを指定した
MissingArgument
引数の必要なオプションに引数を与えなかった

で、いずれにせよ rescue では特に何も記述せずに補足でき、補足した例外をそのまま to_s するだけで十分使いものになる。

$ ruby opttest.rb -f
missing argument: -f
$ ruby opttest.rb -c
invalid option: -c

便利だなぁ。

Tags: Ruby