optparse って、どうしても使い方が覚えられません。"--option-name [OPTION]" みたいな文字列が内部でパースされて、その結果挙動が変わるというインターフェイスが気持ち悪いせいだと思うんです。気持ち悪いインターフェイスは覚えられない *1 。 そこで、最近 trunk に入った Method#parameters を使えばもっと覚えやすくわかりやすい記述ができるんじゃないかなと考えました。 Method#parameters というのは、こんな感じに、Method オブジェクトから仮引数の名前や種類を知ることができるメソッドです。:req は必須の引数、:opt はオプションの引数をあらわします。 def foo(x, y, z = :foo) end p method(:foo).parameters #=> [[:req, :x], [:req, :y], [